Mostly, they are the way they are in Dungeons & Dragons due to legacy compatibility. You can see this in more modern systems that go to a much simpler modifier system. Instead of 18, your score is +4 (or +3 or whatever).
The value in the 3-18 system is that the abilities they produce are a bell curve of scores. This means that most people are average. If you have a range of -3 to +4 and you roll a single D8 to determine your score, you're going to have a huge variation in natural ability.
Ability scores can be very useful for things like saving throws or as an ad hoc measure to determine the success of actions. But how you use the ability score to check things is kind of related to your intent.
That juicy design nut
Consistent results are achieved with a bell curve. The intent here, is that people who have low statistics are bad at the check and people with good statistics are good at the check.
This may sound awesome, but really, often consistent play is boring play.
Interesting results, generally give a 60/40 to 70/30 chance of success/failure. There is a reason most older games used 1 in 6 or 2 in 6 as chances of success, because failures (or successes, dependent on the system) happen frequently enough to create interesting situations in play.
Damn it Jim! You're not a computer!
There are several different methods of addressing the above, but they are highly dependent on the weight you want to place on ability scores. The more weight that is placed on ability scores, the more the design and skill of the character is a factor.
Some common options are rolling multiple D20 dice, and using the higher or lower one to represent a bonus or disadvantage. This is the D&D next mechanic, but it's been around for a long time. It shifts the average result to a higher or lower value, but produces an s-curve, not a bell curve.
A way to modify bell curve rolls is to add or subtract a d6 to indicate additional difficulty. This is effectively the same as applying a rolling +2 or -2 to the check, and setting what you think the value should be for a success at the task.