Why a stream full of trout but not a stream full of newt?
Solution 1:
I have long suspected that with a few exceptions, species of fish (and sometimes fowl) destined for human consumption are often treated as mass nouns, mostly because they are seen as commodities.
bass, halibut, carp, perch, trout, cod, salmon, tuna
One sardine won't make a meal even for a kitten, so it's hardly a surprise sardine has a plural, but krill are so small they don't even rate a singular.
Tilapia is a species relatively recent to the seafood counter, likely the reason the style guide of the American Fisheries Society (scroll down to the appendix) lists it among those that can form an s-plural or not.
Most crustaceans form s-plurals even though delicious — lobsters, scallops, clams, mussels — but while crab and shrimp may be plural crustaceans, i.e., doing their natural thing in the ocean, they are almost always mass noun shellfish, i.e., playing a crucial role in gumbo.
Any fish whose name is a compound ending in -fish stays -fish in the plural whether you eat it or not.
The men in my family of my father's generation enjoyed dove and quail hunting, so these two birds were always mass nouns at home, but I noticed that classmates who never ate them would use s-plurals.