Prepare the grill for direct cooking over medium heat (350° to 450°F) on one side and high heat (450° to 550°F) on the other side.
Brush the cooking grates clean. In a 12-inch cast-iron skillet over direct medium heat, warm the oil. Add the onion and cook until it softens and begins to brown, about 5 minutes, stirring often. Add the garlic, ginger, coriander, paprika, turmeric, salt, and cayenne. Mix well and cook for 2 to 3 minutes, stirring often to avoid burning. Add the tomatoes and coconut milk. Taste and adjust the seasoning, if needed. Allow the sauce to simmer for about 5 minutes while you prepare the halibut.
In a small bowl mix the oil, ginger, salt, pepper, and turmeric. Generously brush the halibut on both sides with the oil mixture.
Grill the fillets over direct high heat, with the lid closed, until they release easily from the cooking grate, 4 to 5 minutes, without turning. Using a wide spatula, transfer each fillet to the pan with the sauce so that the grilled side is facing up. Nestle the fillets into the sauce, close the lid, and let the fillets cook over direct medium heat until they just begin to flake when you poke them with the tip of a knife, 3 to 5 minutes.
Remove the skillet from the grill. Scatter basil on top, if desired. Serve warm.