I think the biggest problem is the lack of parity in MLB. The large market teams outspend the small market teams to such an extent that it's ridiculous. This requires small market teams to frequently rebuild and shoot for windows when they have quality players that are cheap. It's the only way for them to compete with teams with payrolls two to three times larger.
So at any given time you have a third to half of major league teams rebuilding and who it would make no sense for them to sign a big time player. Of the teams that are competing, half of them still don't have the payroll space for a massive contract.
Then, of the teams that have the money, you have to have a team with a need. Why would a team with an all star closer sign Kimbrel?
It's hard to get a bidding war going to get top dollar when you have so few legitimate suitors.
Ultimately baseball has to find a way get more parity in the league. More teams competing will mean more teams willing to spend money for free agents. I only see this happening if baseball somehow figures out a way to limit the disparity in payrolls between teams.