Unikernels have caught on, in the form of processes. You have to run your unikernel in a hypervisor anyway, so why not give the hypervisor a bunch of features and then it's an operating system with a weird hardware-emulating interface. De-weird the interface, and then you have a normal operating system.
The big difference is the hypervisor in this case is the public cloud which is not just multi-tenant but massively multi-tenant. That is the host and vmware and aws and everyone else did a really excellent job of abstracting the host away to the extent that most developers don't even know what a server looks like anymore.
Unikernels take the same approach but abstract the guest away. The abstraction is to treat each vm as an individual application (since we're treating the cloud as the operating system) versus trying to micro-manage hundreds or thousands of virtual operating systems inside the hypervisor.