Getting wonderfully crispy fish skin is all about controlling moisture, proper heat management, and a bit of patience. Drying the skin is actually the single most important step in the entire process.
First, take paper towels and press them firmly against both sides of the fillet, paying extra attention to the skin. Any surface moisture will turn into steam when it hits the hot pan, which prevents crisping and leads to soggy skin. If you have a few spare minutes, you can also gently drag the back of a chef's knife across the skin to scrape off excess moisture and wipe it away with a paper towel.
Next, preheat your cast iron skillet over medium-high heat until it is thoroughly hot. Add a thin layer of high-smoke-point oil, such as avocado, canola, or grapeseed oil, and wait until it shimmers. Season the fish with salt right before it goes into the pan—if you salt it too early, the salt will draw moisture out to the surface.
Carefully lay the fillet skin-side down, laying it away from you to avoid oil splatters. Immediately press down gently on the fillet with a flat spatula for about 20 to 30 seconds. Fish tends to contract and curl when heated, so holding it flat ensures the entire surface of the skin makes direct contact with the pan.
Once it is flat, lower your burner to medium heat. The key to preventing sticking in cast iron is simply leaving the fish alone. Proteins naturally stick at first, but as the skin crisps and renders out its fat, it will release freely from the iron. Do about 80 percent of your cooking on the skin side until you see the edges turn golden and opaque, then flip and finish the flesh side for just a minute or two.