That's because in the major American sports, there are only so many contracts available. If you don't play at the top of your game there's a very good chance your next contract will be a lot smaller than your current one - if you get offered one at all. Because there are no real limits on how many players a football club can sign, and there's massive pressure on managers to bring instant results, a half-decent player can reasonably expect to be offered a contract pretty quickly. In fact, they don't even have to be that good. Most of the time, agents sell their clients on reputation. Compare that to the US, where the performance of every sportsperson is boiled down to bare statistics.
Think about this hypothetical. It's 2019. Tom Brady is a free agent. Atlanta just went 1-15 for the season and have an awful QB. Brady is obviously a big name but last season he started 14 games and threw 1800 yards. The season before he threw 2000. Do the Falcons sign him up on big famous guy money or wait for the draft to grab a shiny new rookie? Exactly. But in football, a 30+ former England striker who has scored five goals in the last two seasons will get a one-year deal somewhere else. And then somewhere else. And so on, until he decides to retire. The incentive just isn't there.