On Windows, Files.move is implemented with MoveFileEx. It seems that this function can complete before the file is actually moved on the disk. The MOVEFILE_WRITE_THROUGH flag makes it wait until the file has been moved - the implications of this in all scenarios will need to be examined.
More context in this bug report to nio-dev:
https://mail.openjdk.org/pipermail/nio-dev/2023-February/013252.html
More context in this bug report to nio-dev:
https://mail.openjdk.org/pipermail/nio-dev/2023-February/013252.html