Your implementation is a typical example of how using too much accuracy to sense a low accuracy requirement can get you into trouble.
Lasers are the scalpels of the opto-business. However, you would not use a scalpel to carve a large ham. You simply could not get nice even slices without taking extraordinary measures to ensure accuracy of each cut.
Lasers are great for measuring really small things, like, refractive distortion in a turbulent moving transparent medium, or counting particles in a moving transparent medium (fish poop). Using a laser here means you have to filter out all those "details" from your signal. Otherwise you can not see the wood for the trees.
Proper geometry and a simple shadow detection system is really all you need.
Note the fish is channeled though a closed pipe with windows on the sides that cover narrow slots in the side of the channel.
Circuit connected to sensor should have sufficient hysteresis to switch when sufficient fish shadow falls on the sensor, and switch back at closer to no shadow at all.
Can you modify your current setup to use the existing laser. Possibly, if the noise introduced by the turbulence is random and at a significantly different wavelength from that of a fish shadow pulse, you may be able to filter that noise out. However, knowing how turbulence can roll around at low frequencies, that may be insurmountable without changing the dynamics of the water channel.