Seca los trozos de pescado con papel de cocina y sazónalos con la mitad de la sal y toda la pimienta. Déjalos reposar mientras preparas la salsa, sin añadirles limón.
Calienta el aceite en una sartén profunda o una olla ancha a fuego medio. Añade la cebolla, el pimentón y una pizca de sal, y cocina durante 5 minutos, hasta que estén blandos. Incorpora el ajo, el comino y el achiote, y remueve durante 30 segundos, sin dejar que el ajo se dore.
Agrega el tomate y cocina de 7 a 8 minutos, removiendo de vez en cuando, hasta que se deshaga parcialmente y el líquido se reduzca. El sofrito debe verse húmedo, pero no aguado.
Vierte la leche de coco y el agua o caldo. Mezcla, lleva la salsa a un hervor suave y cocina sin tapar durante 8 minutos, hasta que tome un poco de cuerpo. Prueba y corrige la sal si hace falta.
Acomoda los trozos de pescado en una sola capa dentro de la salsa, tapa la olla y cocina a fuego bajo durante 6 a 8 minutos, según el grosor. Estarán listos cuando se separen fácilmente en lascas al presionarlos con un tenedor y el centro ya no se vea translúcido.
Apaga el fuego, incorpora el cilantro picado y deja reposar el encocado durante 3 minutos. Sirve caliente con más cilantro y, si lo deseas, unas gotas de limón.