There's a few simple rules to help win:
1 -- Do not fish in other people's pools. If you get to a pool with someone else already fishing it, just move on. Fishing it will hurt both of your chances to win, not just his.
2 -- If you are fishing a pool and someone else starts fishing it, move on after you reel in your next catch. (Exception: you've only caught one or no fish out of the pool. In this case, take another cast before moving on.)
3 -- If you need to take thirty casts to land in a pool due to missing it when you do cast and getting a bunch of errors in between successful casts, just move on. It's not worth the wasted time if you can't properly fish the pool. As a hint for pools like these, standing in the water and fishing parallel with the coast tends to have a much better success rate than fishing perpendicular to the coast.
4 -- Have protection. On a PvP server, dieing even once almost guarantees a loss. On a PvE server, your group can scout for your next pool. On a bit more of the shady side, your scouts can "claim" a pool by fishing it but not reeling in. Only effective with people following rule 1.
Also as a note, I'm fairly certain your skill has nothing to do with your chances of catching a rare fish. RNG is, as it says, random. My fiancée spent two months fishing up 200 fish a contest with no luck, and then the next week caught two of them within twenty casts. It's pure luck, and skill over the no-get-away level is unlikely to change that.