In a mixing bowl whisk together vegetable oil, lime juice, garlic, chili powder, cumin, paprika, cayenne and season with salt and pepper to taste (about ¾ tsp salt ¼ tsp pepper).
Place fish into a dish or gallon size resealable bag and pour marinade over fish (if using a bag seal bag and gently move bag around to evenly coat fish with marinade), allow to marinate in mixture 20 minutes (and no longer than 30 minutes).
Preheat a grill to medium-high heat. Brush grill grates with oil and place fish on grill.
Grill until cooked through, about 3 minutes per side (cook time will vary based on thickness of fish).
Preheat oven to 400 degrees. Line a baking sheet with parchment paper or spray with non-stick cooking spray.
Place fish on prepared baking sheet. Bake until cooked through, about 10 - 15 minutes (fish should flake easily with a fork).
Heat a 12-inch non-stick skillet over medium-high heat, drizzle lightly with vegetable oil. Remove fish from marinade and cook in skillet about 3 - 4 minutes per side, until cooked through.
While the fish is cooking whisk together sour cream, mayonnaise, lime juice, and garlic powder in a small bowl. Season with salt to taste.
Break fish into pieces, layer over warm tortillas. Top with cabbage, avocado, cilantro, cheese if using, and fish taco sauce.
