It's the same reason people keep inventing VMs. Every process is also a VM (and can only do what the hypervisor... kernel... allows), but it's a more convenient abstraction to run a new kernel and its processes in a hardware emulating VM within that VM for many kinds of workloads, despite the overhead of emulating hardware.
Containers are a middle-ground, and a useful abstraction -- where you can have a group of processes that can share some resources and be accounted for together, but without the need to emulate hardware or a second hypervisor (kernel).
For lots of workloads, though, processes would be enough. Some more could be done with additional work to kernels to help group processes together (Linux cgroups, Solaris contracts and zone facilities) and more container-aware schedulers (Not sure what Linux has, Solaris has a 2-layer scheduler for its containers).
I was heavily into containers in the 90s and 2000s, and then VMs when they became more viable with Xen 2, but I've been moving things back to just processes.