The most importent thing is the number of PWM channels.
With software PWM theoretical every output Pin can be used as PWM Channel.
Hardware PWM's are restricted by the included PWM Generators.
At AVR Controllers Hardware PWM Channels appends from Timers.
Every ( sometimes 2 ) PWM Channel afford's one Timer.
With software PWM one Timer is enough for all PWM Outputs with the same PWM Frequency.
Many Controller only have 1 or 2, 16Bit PWM sources.
With Software PWM all Outputs are possible with 16 Bit Resolution by using a 16 Bit Timer.
The mischief of software PWM ist the controller load.
The Controller must set and clear every Output at different, sometimes at same Time, while a PWM cycle.
So there are only quite low PWM Frequencies possible - But I think you know that.