Apparently Windows has significantly better support for VM write notification, MEM_WRITE_WATCH. CoreCLR GC took it for granted. When Microsoft tried to port CoreCLR to Linux, they found Linux has poor support to do so. They were forced to do write barrier.
Hopefully CoreCLR on Linux can use userfaultfd in the future. It’s about time Linux catches up here.