Soak the fish in lime juice for 30 minutes in a glass pan or non-corrosive dish. Remove the fish, reserving the juice. Combine the curry powder, cumin, paprika, allspice, ginger, salt, black pepper, and cayenne pepper in a small bowl and stir until well blended. Place each fish fillet on an individual sheet of aluminum foil. Coat each fillet with the spice mixture. Sprinkle a tablespoon of the lime juice over each piece of fish. Place a mound of onion on the top of each fillet. Wrap each fillet tightly in the foil.
Remove the rack from the grill and lightly oil it with vegetable oil where the fish will be placed. Make a fire in the grill and cook for 5 minutes. Turn the fish packets and cook for another 3 minutes. Open a packet to see if the fish is done. The flesh should be opaque and the skin should pull away from the flesh; flakiness is usually a sign of overcooking.