This is possible given they designed it in a micro-kernel like fashion, where things are more modular and a lot more can be done straight from the userspace without going for the expensive 0 ring barrier.
From the docs:
> Rather than running Linux binaries in a virtual machine, `starnix` creates a _Linux runtime_ natively in Fuchsia. Specifically, Linux program can be wrapped with a _component manifest_ that identifies `starnix` as the _runner_ for that component. Rather than using the _ELF Runner_ directly, the binary for the Linux program is given to `starnix` to run.
> In order to execute a given Linux binary, `starnix` manually creates a `zx::process` with an initial memory layout that matches the Linux ABI. For example, `starnix` populates `argv` and `environ` for the program as data on the stack of the initial thread (along with the `aux` vector) rather than as a message on the bootstrap channel, as this data is populated in the Fuchsia System ABI.