I don't really know where this trend started, but the first times I really noticed it was on console games. I never had a modern game console, since I think they are pointless, but I noticed it when watching others play games on console, lots of those games are build around some kind of unlocking system.
What is an unlocking system? Well basically an unlocking system locks away features of the game until you fulfilled the conditions to unlock them. One of the primary reasons this is done is probably to artificially prolong the playtime, by forcing players to do more of the boring things first until they get the better content.
Why is this bad? Well it is bad, because there is no logic or backstory behind it and it makes the gaming experience artificially worse even though it does not have to be. For example why would you have to race a certain track 50 times in order to unlock a new racing car? There is no real life equivalent to it. A real life equivalent would be, that you need to do it, to earn money to buy the car, but this would already not be an unlocking system, because there is no fixed conditions or behavior you have to do, you can use all the game has to offer to make the money to buy the car ingame.
It is also pointless to have an unlocking system in a video game. Video games were made so you can do things in the virtual world that you cannot do in real life or are limited in real life. If you now introduce an unlocking system into a video game, you remove one of the points why video games are made in the first place and this is to have no limitations. This also gives us one of the reasons this is so common on console games, but less on PC games and this is because consoles can be easier limited and cheating on them is harder, since on PC players could just cheat to unlock everything, especially if it is just a single player game.
The unlocking system is similar to the achievement system, the big difference is only that an achievement system does not limit things for real in the game, the achievements are just medals while the unlocking items are real items or content in the game that is unlocked. So it is a bit complicated to handle each of those bad game design choices individually, since they often go hand in hand or are based on another.
The unlocking system is also part of the mechanics that are hostile towards open source software, since it controls the user by locking away content and features away from him and extorting him to do certain often boring and pointless tasks in order to get them back. There is no real reason to have such artificial limitations in a software unless it is part of the game. Many games have mechanics where content and features are limited inside the game, but they build it into the game mechanics itself like you need to gather the resources to buy or build the new content or research to get new features and abilities. It is also common for games to have different game modes, like one where you play with limited resources and one where you have unlimited, or sometimes cheat codes are easily available or build into the game, so players who do not want to grind can use the other game modes.
Even within the game an unlocking system is not logic and not balanced. Within the game you should be rewarded for actually achieving something or using your brain, not by just repeating a certain task a certain amount of time. An unlocking system rewards players that put a lot of time into the game and repeat boring tasks, which is kind of conditioning people to waste more time than they would into a game and having less fun than they would have, by having the good stuff right from the start or at least the ability to have it by gathering resources to buy them.
With an unlocking system a player gets access to better equipment and abilities within the game even though he did not actually do anything to earn them in the game. This is very harmful regarding the balancing in multiplayer games, I mean for example why would you want to play a racing game where the players that play it for longer have access to better cars and therefore have an advantage over you. If the game says you need enough money to buy those better cars I would give it a pass as a legitimate game design choice, but with an unlocking system you cannot get the better cars even, if you managed to earn the money for it in game, they are just locked away and there is nothing you can do to get them except do the exact often boring and repetitive task the game forces you to do.
You can see the unlocking system is a similar problematic in multiplayer games than pay to win, the difference here is just that not the player who pays more gets the unfair advantage, but the player who plays longer who gets the unfair advantage. Sure the person who invests more time is in general also better at the game, but this is because he learns skills to be better at the game and uses that skill to earn money or resources in the game, where he can purchase advantages over others, but all those mechanics are not absolute, meaning you can get around them, by learning faster or playing more intelligent/efficient, but an unlocking system you cannot get around, it is a hard boundary. Not every player who invests more time also automatically gets better, it is just a tendency, in fact a large portion of people never get better no matter how much time they put in, if they do not have the intelligence to learn to play more professionally.
I just notice the previous mechanic leads me to another mechanic as to why unlocking systems are so popular, it is about psychology. At the beginning I explained how unlocking systems artificially increase the play time, by forcing or rewarding players to do often boring and repetitive tasks they normally would not do. So the first main reason is to artificially increase playtime, this is very important so you earn more money and stay popular longer as a developer now lets get to the second reason an unlocking system is so good for a game developer and this is that you not only retain the player base for longer, but also attract and retain newbies inside the game. Some time ago I read an article about psychology on how to motivate people to play and stay inside a game and for that one part was to introduce random events that allows less skilled players to get some scores/kills or whatever in the game. You understand? People need the feeling of success or achievement in order to stay motivated to play a game, but if you would only reward actual real achievements then you would lose the losers/less skilled/newbie etc players as your customers and so by introducing random events you motivate them staying inside the game and this is exactly what an unlocking system also does.
Imagine a loser that is too stupid to ever improve at the game, what will he do? Well he will very likely get frustrated and/or even quit the game or not play it for long to begin with. So you introduce an unlocking system, that rewards him mostly based on playtime, so our loser player will constantly having the feeling of success, because he constantly unlocks something even though he did not do anything to do so. The first part of this mechanic already keeps him playing, but in the long run this may not be satisfying enough, the loser player also wants to get a win against the better players and through the unlocking system he can get that, since he will have access to better equipment, weapons, abilities etc than more skilled players that have put less time into the game and therefore have an advantage over other players which allows them to occasionally get a win, even though they could not do so under fair conditions. This system sometimes even beats pay to win, since in some games you cannot even unlock those things through money inside the game, so it also motivates non pay to win players to stay in the game, since they still can have somewhat of an advantage over paying to win players. It is kind of a win win win situation for the developer if done right.
I begin to think that my list of bad game design choices is actually a list of good game design choices from the view of the developer, but I want to handle it from the view of the customer, since he is the one actually consuming the product, which is indeed made worse through those practices I list here. However in some cases I'm not that sure if such a bad game design choice is actually really a bad choice, but this is more a problem with human psychology, so I do not bother right now. I want to look at those issues under ideal conditions with mentally healthy consumers.
Well this has gotten longer than expected, but while writing this I remembered again as to why I created Uebergame and it is because modern proprietary games often have so many unnecessary restrictions that do not need to be there, I mean you have a software and a virtual world where you theoretically can do anything you want, which is what I was aiming at with Uebergame and the unlocking systems are one part of those unnecessary restrictions. Many of those bad game design choices would probably solve itself if the game was open source, for example the unlocking system would not work, since people could just go into the source code and undo it, it would only work if the game was multiplayer and the server would set the rules that you would have to unlock certain things, but even then people can make their own server with their own rules. But sadly people do not seem to care about solving those issues with open source, most likely it is those losers that prevent things from getting better, since they actually like such restrictions since it benefits them. In a losers mind it is probably more important to get an unfair advantage over other people instead of getting freedom which would remove the possibility of unfair advantages or false prestige.