In a bowl, toss the shrimp with olive oil, lime juice, lime zest, chili powder, smoked paprika, garlic powder, cumin, salt, pepper, and red pepper flakes if using. Let sit for 10 to 15 minutes while you prep everything else.
In a bowl, mix cabbage, carrots, red onion, cilantro, lime juice, mayo or Greek yogurt, and a pinch of salt. Toss until lightly coated and crisp.
Blend or mash together avocado, Greek yogurt, lime juice, olive oil, garlic, salt, and enough water to make a smooth drizzle consistency.
Heat a skillet or grill pan over medium-high heat. Cook the shrimp for 1 ½ to 2 minutes per side, until lightly charred and just cooked through.
Arrange lettuce leaves on a platter. Fill each with a spoonful of slaw. Top with several shrimp. Drizzle generously with the avocado lime sauce.
Sprinkle with extra cilantro and serve with lime wedges and hot sauce if you like.
