I suggest trying to moderate your Pokéball use, if you can. For example, you don't need to catch everything that pops up with incense. Personally, I just shiny check everything, and if it's not shiny, or something I need candy for, I just flee. And for Legendaries, I'm kind of baffled as to how you're using so many Pokéballs to catch them. I can't speak for Legendaries encountered through the battle league, but ones obtained through research breakthrough (which should have the same catch rate), don't usually take me more than 10 Ultra Balls to capture. I have trouble imagining it taking 100 Pokéballs, seeing as a Premiere Ball from a raid has the same capture rate as regular Pokéball, and you only get 10 or so of those to catch the Legendary, which is perfectly possible.
Are you using curveball throws and attempting to land nice/great/excellent throws whenever possible? I suppose that might make a difference.