There's an obvious problem in the development of any game intended to provide challenge that people have vastly different levels of skill, and if you make a game hard enough to satisfy good players then the bad players won't be able to get through it at all. The obvious answer is to allow the player to adjust the difficulty. And a lot of games do this. But for some reason a lot of games don't and their designers argue against it. I'm going to refute their objections and show the horrible problems with their alternate solutions.
First of all, let me make one thing clear about my position: the difficulty should always be adjustable inside of a playthrough. Having the player make this choice at the start of the game before they know hardly anything about it and then forcing them to stick with it is asinine, so no strawmen.
One objection anti-adjusters make is "if you let the player adjust the difficulty, they'll just lower it whenever they get to a hard part, and you'll kill the game's challenge". First of all, this idea is completely contradicted by any experience with competitive gamers in real life. Just how many people have beaten their favorite games with adjustable difficulty on the hardest setting even though they died dozens of times doing it and at some points got very frustrated? You're talking to a gamer who's done not only that but house ruled games to make them harder than they could go. Turns out, we competitive gamers have a basic understanding of ourselves and we know that challenge is the crux of our enjoyment.
There are only two cases where I have lowered the difficulty during a playthrough intended to provide challenge: either when the game's difficulty is unfair, in which case this is a good thing because I'm getting out of something I'm not enjoying, or when I realize that I have the difficulty set genuinely too high for me - again a good thing (although I can't actually think of any times I've done this). I have never lowered the difficulty in a way that deprived me of a fun experience.
Some games try to detect the player's performance and auto-adjust the difficulty based on how much they seem to be struggling. This is the worst of all options I've seen because no one can have the experience they want. Gamers like me want the game to be hard enough that we die a lot; we want to keep trying the challenge we failed at until we beat that challenge. But the auto-adjuster swoops in and stops us from trying the same challenge again! And the people that just want to experience the story? The auto-adjuster guarantees that they will have to retry sections regularly.
Another solution popular in RPGs is allowing the player to level-grind. Everyone agrees that grinding is no fun, so why would you suggest forcing the weaker players - who are usually the same ones who don't want to be challenged in the first place - to do it instead of just allowing them to change the settings? Worse, in the case of a competitive-minded gamer who genuinely needs to level grind, they have no way of knowing when they should stop. Odds are they end up either needing to go grind some more after another long session of losses at the boss or making the fight too easy and wishing they hadn't.
Finally, I should mention that adjustable difficulty has a huge advantage in terms of increasing a game's replayability. You can beat a game on normal, then go through it on hard once you have more practice, then maybe even attempt it on nightmare. Each playthrough can increase the total consumption time of the product by as much as or more than it took to beat it the first time. And all these extensions are achieved with minimal developer effort (at least compared to how long it took to add the "normal" level). This isn't possible in single-difficulty or auto-adjusting games, and may or may not be possible in grinding-based games by avoiding encounters.