It appears that it comes down to the Christian tradition of fasting. Supposedly, the reason for 'not eating meat' during Lent, or on a Friday, or if you're a monk or the like, is that eating meat is indirectly partaking of the original sin. Animals reproduce by breeding, and in the case of mammals and birds, breeding involves copulation. If copulation is sinful, then the product of copulation - even that of animals - is also to some extent sinful, and therefore their flesh should be avoided.
Fish, on the other hand, do not copulate. Therefore, the flesh of fish is not the product of sin. And thus it is permitted to eat fish.
(Though whoever categorised whales as fish never went out with the sperm whalers. And also not all piscine species use the eggs-and-milt approach.)
Edit: for silly typo - thanks Feòrag.