There's this thing called write caching used by both MacOS and Linux. Basically, the OS creates a "list" of stuff to write on the drive and completes these write tasks later on (sometimes when you click eject).
Windows disabled this thing and writes whatever it has to write directly to the drive, skipping the cache for those drives recognized as removable, while using the write cache for those non removable.
In the end, what happens is that on MacOS and Linux you fuck up the data that needs to be (or is being) written on the drive when you "unsafely" unplug the drive.