In ServiceContextMongoDTest::ServiceContextMongoDTest(), it puts a unittest::TempDir on the stack. This seems unintentional, as the code immediately removes the temporary directory when the constructor finishes.
The code still "works" on Linux because the storage engine has already opened all the files it needs by that point, so it never notices the directory got deleted.
On Windows, the tests are working because the removal of the temp directory fails, since there are still open files in the directory. This results in any unit test utilizing ServiceContextMongoDTest on Windows to have their logs filled with copious warnings:
(And I believe the test ends up littering the Windows test machines with many temp directories.)