Freshly grated coconut tied in muslin cloth and squeezed to extract the milk works the best, but in the Western hemisphere, canned coconut milk is most readily available and makes a good substitute for fresh coconut. If coconut milk is not available, unsweetened evaporated (not condensed) milk can be used as a substitute.
This same process can also be used with chicken legs and thighs for another variation of malai curry, which is also true for shrimp, which is especially delectable.
The fish I used today came from a membership supermarket (Costco/Sam's Club) in a 3 lb. fresh pack. I sliced them up, divided them between 3 Ziploc bags, seasoned them with turmeric powder and salt and froze them for later use. Thawed in the sink, it makes life much easier when it comes time to cook.