While true, the closer Darwin is to Linux, it simultaneously eases implementation while disincentivizing doing it in the first place. Rarely you want to run a prebuilt standalone Linux binary on macOS; you just compile it to run on Darwin. In cases where you actually want Linux, you probably don't want even the slightest edge cases to be present.
Besides, VMs are quite fast if you have hardware support.
Running docker provides that incentive.
No matter how fast VMs are, they are still quite a jump from just running local processes, e.g. they consume resources while idle.
Also,.having to rebuild your binary just to run it under docker/linux means you cannot benefit from your compiler cache you just used minutes ago to run your unit tests locally (e.g. if you use tool chains like go or rust that do use compilation caches)