Very few captive snakes will eat fish......garters and ribbons are the only two common captive snakes that I can think of....i think it still depends on the type of garter or ribbon....some are found in environments where fish are not easy to come by...
I have actually seen a cottommouth eat a catfish before...pretty cool stuff...Fish eaters generally come from a 'marsh' or 'waters edge' type environment...fish is all they really have to eat in that location so they are adapted to eating fish.