Heat oil in a wide pan over medium heat until shimmering.
Add chopped onion and sauté until soft and lightly golden.
Stir in minced garlic and grated ginger; cook 1–2 minutes until fragrant.
Add turmeric, ground coriander, cumin, and paprika; toast spices briefly to release aroma.
Add chopped tomatoes and cook until they break down into a thick paste.
Pour in coconut milk and stock; bring the sauce to a gentle simmer.
Stir in tamarind paste or lemon juice, and season with salt and a pinch of sugar if needed.
Gently add fish portions to the simmering sauce, spooning sauce over them.
Cover and cook 6–8 minutes until fish is opaque and flakes easily.
Garnish with sliced green chili and chopped cilantro; serve hot with rice or flatbread.