Yeah, this is an old bug, for a few versions now. The work around I found is to either stand at least 2 tiles from the shore line, or build flooring for a dock that surrounds your character. The point is that if the fish hits "land" before it gets to your character, you will catch the fish. I found that at least 2 tiles between your character and the "land" works best.
What's bad for the game is how unrefrigerated milk doesn't spoil in a day and how a cow produces 40 L/day at 600 kcal/L. Fix spoilage and you don't have combat milk anymore regardless of restrictions on auto-drinking. They also need to fix how strong alcohol quenches your thirst instead of making it worse.
I'm currently recording gameplay to try to recreate it. I've recorded a couple of "OK" examples. But I'm waiting for a really good example to show on here and I'll upload it.