Why doesn't docker use it for linux guest on linux host instead of kvm?
These instancing / isolation capabilities and interfaces are very Linux-specific. So to run Docker on a non-Linux OS, you need to run Linux in a VM.
If you have a Linux host, I'm not sure why you'd run Docker inside KVM or a user-mode Linux kernel. Wouldn't you rather just run Docker directly inside the host kernel?
For better isolation. Privilege escalation would only affect the user mode kernel.