Proteins often stick if they are started in a cold pan. For non-stick surface on my pans which are not teflon-coated, the pan is heated to temp, then fat is added, then the protein. This is the technique to fry an egg in a cast iron, stainless steel, or carbon steel skillet.
Cooking is essentially food + heat. If not using a thermometer to measure heat or determine "doneness", the fish may have a dry texture because it was overcooked. Note that "carry over" cooking will bring the protein up a few more degrees after it is removed from the heat.
Suggestions:
- Dry the fish skin well and the make sure it's coated with some type of fat/oil so that it doesn't stick to the foil.
- Wrap fish in a layer of parchment paper inside the foil pouch; the parchment paper should stick less than the foil.
- Consider experimenting with different methods of cooking fish unwrapped on the grill…
- Grill the fish over direct heat, hot and fast. This should provide a crispy exterior without drying the interior. Use a thermometer to determine doneness, otherwise the fish may become overcooked.
- Grill over indirect heat to start and finish over direct heat. This is much like the reverse-sear technique for cooking a steak where the protein is brought up to temperature (using a thermometer!) on the indirect heated side of the grill, then move it to the direct side of the grill to finish it and add a crust.
- Pre-heated a cast iron skillet in on the grill. Add fat/oil to the skillet, then add the fish. Flip once. Remove when desired temp is reached on thermometer.