Mix together turmeric powder, lime juice, black pepper powder, and salt on a large plate.
Add the fish to the plate and coat well with the spices. Keep aside to marinate for 30 minutes.
Heat coconut oil in a large pan over medium-high heat.
Once the oil is hot, arrange the fish in a single layer and fry for 3-4 minutes on each side until lightly browned. Transfer the fried fish to a plate and keep it aside.
To the remaining oil, add cloves, green cardamoms, cinnamon, mustard seeds, curry leaves, and green chilies, and fry for 3-4 seconds.
Add onions, ginger, and garlic and fry till onions turn pinkish.
Add coriander powder, turmeric powder, salt, and black pepper powder, and cook for 8-10 seconds.
Reduce the heat to low. Now add thin coconut milk and tomato and cook for 20-30 seconds
Add 1 cup of water and mix well. Add the fish pieces back to the pan and shake the pan to coat them with the curry.
Cover the pan and cook the curry for 10 minutes, shaking the pan a few times in between.
Finally, add thick coconut milk, tamarind paste, and garam masala and mix well. Cook on low heat until the curry comes to a gentle simmer.
Do not overcook otherwise the curry may split. Check for salt and add more if needed. Serve hot with steamed rice.