Preheat your grill or a skillet over medium-high heat. In a small bowl, mix together the chili powder, cumin, garlic powder, salt, black pepper, and cayenne pepper (if using). Rub the spice mixture evenly over both sides of the fish fillets.
Drizzle the olive oil over the fish and place it on the grill or in the skillet. Cook for about 3-4 minutes per side, or until the fish is cooked through and flakes easily with a fork. Remove from heat and let it rest for a few minutes.
While the fish is resting, warm the corn tortillas on the grill or in a dry skillet for about 30 seconds on each side until they are pliable.
To assemble the tacos, flake the fish into bite-sized pieces and place it on each tortilla. Top with shredded cabbage, diced tomatoes, chopped cilantro, and avocado slices.
Drizzle with sour cream or Greek yogurt and lime juice. Serve with lime wedges on the side for squeezing over the tacos.