Why are there so many fillers in long-running animes?
There are lots of possible explanations to that:


As you said, the anime catching up to the manga, so they have more time.
Special events, as anniversaries, movie-related specials or so.
Also, the narratives are different and that depends on the production team. In your example, Naruto (as Bleach did) commonly makes battles really fast-paced, so they tend to catch-up with the manga quickly. Whereas One Piece, while having lots of battle too, tends to make them less dynamic, so in the end, they are longer and don't catch up to manga as easily.