Rub the fish fillets with the crushed garlic, then place them in a shallow, non-reactive dish. Spoon the olive oil over the fish until they are coated. Place the onion on top of the fish.
Cover the fish and refrigerate overnight to allow the fish to soak in the marinade.
Preheat the oven to 350 degrees F (175 degrees C). If baking the fish, transfer it to a 9x13 inch baking dish along with the olive oil, garlic, and onion. Sprinkle the fish with the cayenne or white pepper. If you are grilling the fish, wrap the fish and oil, garlic, onion, and pepper in aluminum foil. Bake for 30 minutes.