Prep ingredients: Halve, peel, and thinly slice all of the onion. Halve poblano, remove stem, core, and seeds, then cut into 1⁄2-inch pieces. Pick cilantro leaves and finely chop stems, keeping leaves whole.
Prep fish: Pat fish dry and cut into 11⁄2-inch pieces. In a medium bowl, rub fish with 1 tablespoon oil, then toss with 11⁄2 teaspoons of the chili powder (save rest for own use), and a pinch each salt and pepper. Let sit until step 6.
Warm tortillas: Working with 2 tortillas at a time, cook in a medium nonstick skillet over medium heat until warmed and softened, about 30 seconds per side. Stack and wrap in foil as you go.
Make corn & poblano sauté: Heat 1 tablespoon oil in same skillet over medium until shimmering. Add poblanos and all but 2 tablespoons of onion. Season with a pinch each salt and pepper; cook, stirring occasionally, until lightly charred, 5–6 minutes. Add corn and chopped cilantro stems; cook, stirring, until heated, 2 minutes. Season to taste with salt and pepper. Transfer to a bowl.
Prep salad & crema: Squeeze 1 tablespoon lime juice into a large bowl and cut remaining lime into wedges. Add 1 tablespoon oil and remaining onion to bowl, season with salt and pepper, and toss. Halve romaine lengthwise and cut crosswise into 1-inch pieces. Add to dressing and toss. In a small bowl combine sour cream with 1 teaspoon water; season with salt and pepper.
Cook fish & serve: Wipe out skillet and heat 2 tablespoons oil over medium-high. Add fish and cook, turning once, until lightly charred and cooked through, 3–4 minutes. Build tacos at table; fill tortillas with fish and some of the salad. Drizzle with crema and garnish with cilantro leaves. Serve lime wedges, corn-poblano sauté, and rest of the salad alongside.