People that play Fortnite, Apex, Warzone and Overwatch would strongly disagree - these games have lifetime revenues of over £25bn and collectively they get probably close to 50m players each day still. Those games offer strong retention aspects, are constantly developed and are continuously giving people something to work towards. It's also better than players buying lootboxes or skins direct. Battle passes divided into seasons further gives people reason to continue or return and new stuff to work towards.
Compare those highly successful games with Battlefield 2042 and Halo Inifnite which are both monumental brands with games that are absolutely dead and in crisis mode less than a year after releasing. These games offered no progression or things to keep people engaged with. It isn't 2009 still - many users these days especially younger gamers want more than to just rattle off 20 matches in a session and gain 7 levels like we all used to be happy with when COD was in its prime and deathmatch wasn't saturated.
Overwatch when paid struck a great balance between gameplay and rewards which were an insanely popular progression factor but in the sequel, it may take months just to unlock one thing or cost £179 to complete the set which could've been earned for free when the game was paid. As Diablo Immortal proved, a game being free does not benefit the gamer - it just gives the illusion of generosity to hook people and then get a bigger ATV payoff on committed players who are future-paywalled.
I'd rather have levels, unlocks and challenges plus more to focus on rather than just going from one disbanded lobby to another with sweatfest matchmaking. The more content the better and its a win for everybody. Epic know what they are doing 12 months in advance but companies like DICE, Blizzard and 343 just wing it and fall at the first hurdle.