Procedural generation can mean an awful lot of different things, so forming an opinion of a game based solely on the fact that it utilizes "procedural generation" is kind of like doing the same thing for a game that "uses AI".
Here are a few observations that may go against what many think of when they hear the term "procedural generation" in connection with games.
1. Procedural generation does not mean "random"
Procedural generation is the process of generating data dynamically rather than simply loading static data into memory. However, just because the data is generated at runtime rather than being a part of the game data on disc does not automatically mean that it is random in any way. It is quite possible (and is usually the case) for an algorithm to consistently generate the exact same end result given the same starting point.
2. Even "random" rarely means "random"
While an algorithm for generating data may contain some elements of randomization, it is still constrained in many ways. You cannot generate a level for a game by, say, assigning random colors to random pixels on the screen. You need to enforce some rules of level design, or you won't end up with an actual level for your game. How much randomization is used can vary widely, as well as which elements are randomized and how.
3. Procedural generation is not only used for generating levels
Almost any kind of data can be procedurally generated. Textures, sounds, models, items, effects, maps, basically any kind of data you can think of. As previously mentioned, procedural generation need not contain any randomization, so it is quite possible to have a game where almost everything is procedurally generated, and still have it be the exact same experience each and every time you play it.
4. Procedural generation is done for many different reasons
Well, the most immediate reason is usually "so you don't have to make all that data yourself", but there can be many different concerns involved in why making it yourself would be a bad idea. Here follows a few examples.
A) Storage
Data generated at runtime is data that doesn't need to take up storage space when the game isn't running. This means smaller installation packages and smaller installations. For this reason the demo scene has been instrumental in developing many techniques of procedural generation, because there has traditionally always been demo competitions in various storage size classes, many of them quite small. When you want to make something impressive, but your program is only allowed to take up 4KB, you need procedural generation. If you are unfamiliar with their work, I do urge you to look up the demo group farbrausch and look at some of their demos. You will be amazed at how much can be done with how little.
B) Work
There's no use denying it. Making assets for a game takes a lot of time, effort and skill. For a small team, creating all textures, sounds, models, levels, etc. entirely by hand may simply not be feasible, unless they want to restrict themselves to making very small games indeed.
C) Quality
A procedurally generated texture has no pixellation, because it adjusts its resolution as needed. Remember DOOM? Remember walking right up to a wall and admiring those four pixels now filling your monitor? While that is naturally an extreme example, the issue has not simply disappeared. While textures these days are of course much more detailed than those of DOOM, it is simply not feasible when making a game to create every texture in 4K resolution, on the off chance that some player somewhere might stick his nose right up to the object and notice the pixellation of the texture. Generally, you make high-resolution textures for those objects a player is likely to see up close, and leave the rest in a lower resolution. Another approach would be to use procedural generation for at least some textures, because then it won't matter how close the player gets.
D) Complexity
You may be in a situation where you simply have too many possibilities to take them all into account beforehand. Let us say you would like your FPS game to have realistic sound effects for the impact of projectiles. A bullet hitting a steel girder does not make the same sound as a bullet hitting a plaster wall or a wooden cupboard. A grenade hitting a concrete floor does not make the same sound as a grenade hitting a carpet. What do you do then? Do you pre-record the sounds of every possible combination of something hitting something else? And then do it all over again when you make an expansion pack featuring four new weapons and eight new materials in the new levels? Or do you use an algorithm to generate an appropriate sound based on the properties of the materials involved?
...
Procedural generation can be a fantastic thing. One of my great sorrows concerning both games and technology in general, is that Spore turned out the way it did. When it comes to sheer technological achievement, Spore is without a doubt (in my mind, at least) the most impressive game ever released. When you understand what Spore did and how it did it, it is very difficult not to be awestruck at what the developers managed to achieve, and how far they advanced the field of procedural generation. Unfortunately, as a game, Spore left a lot to be desired, and was therefore not the huge success it was supposed to be. Because of this, the advances it made regarding procedural generation (which were not only applicable to games, by the way) stopped dead in their tracks, because nobody wanted to "go down that path" so as not to risk having their game end up like Spore.
Procedural generation exists in every game ever made. Every bit of data not actually stored before the game starts is, in principle, procedurally generated, even if it is just the score of the player. It is still data that was generated at runtime by the code of the game, rather than simply being loaded into memory from pre-fabricated assets. So don't scoff at procedural generation on principle. It is simply with that as with everything else, a matter of the right tool for the right job. Of course, using the right tool does not guarantee high quality, as it is quite easy to use a tool badly, even if it is the right one.