Start by making the crema. Combine the mayo, sour cream, cilantro, lime juice, lime zest, garlic, garlic powder, and salt into a bowl. Stir to combine. Set aside while you prep the fish.
Make the spice blend by combining all the spices, the salt, and cayenne pepper (if using) in a bowl and mix until well combined. Sprinkle half the spice mixture in an even layer over one side of the tilapia. Flip and sprinkle the remaining seasoning over the other side. Pat the fish to get the spices to stick.
Heat a large cast iron or nonstick skillet over medium heat. Add 2 tablespoons of butter to the skillet and let it melt.
Add the fish in a single layer and cook 3-4 minutes without moving it. Flip. Cook another 3-4 minutes, or until the thickest part of the fish reaches 145°F on an instant-read thermometer. Add more butter if the pan runs dry (especially important with cast iron). Tip: you can remove the fish from heat at 140°F. “Carryover cooking” will bring it to a safe temperature as it rests in the pan.
Once the tilapia is cooked, flake the fish into large chunks. Serve in warm tortillas with the cilantro lime crema and desired toppings.