If it matters, I'm talking about the arduino uno v3.
Check out the ATMega328p datasheet: each of the 3 timer/counter blocks can generate PWM (2 PWM signals per timer) and on top of that, typically Timer1 (16 bits) is used by the OS/scheduler/whatever, unless you are really running on bare metal.
It's a limitation, but so is everything else.
If you do not like it, you can always choose a different microcontroller, either AVR or something else. Certain models might be designed to have more units of a specific type than you would find on generic microcontrollers.
After all, it's a cost issue.
Not only of the Arduino/Atmel, but any microcontroller.
The outputs of the PWM unit (which has a limited number of PWM channels) have to be routed to the output pins.
This routing is basically fix, because the silicon mask is fix.
However, to add some flexibility, most controllers allow a limited configuration of this routing by adding some internal switches which can be accessed by writing to the specific registers.
But any additional routing capabilities means more of those internal switches, which results in
more size -> more silicon -> more expensive.
Therefore the micro designers say - for example - "OK, it's enough to be able to output x of the y available PWM channels at every edge of the micro", and the poor PCB designer has to cope with what he gets.
Using an FPGA instead of a microcontroller you are really free to setup your function to pin routing - but look at the price of an FPGA ;-)