It’s basically as Gio says. Fish from fishing or fish trapping are drawn from the nearby creature pool. If you don’t see fish in the area, you won’t catch any fish. Basically, the trap/fishing rod picks a fish at random, decides if you catch it or not, kills it, and deposits it’s body at your feet. snipped rant about attempts to mod fishing system
My advice: Also as Gio says, look for fish appearing on the bank of the river. Also, use a bow/crossbow/.22 or try to corner them in the shallows with a melee weapon. You’ll get more reliable “catches” and use less time that way.