D1 is built on Durable Objects, where SQLite is used on top of a custom distributed storage layer. This blog post describes in detail how the system works:
https://blog.cloudflare.com/sqlite-in-durable-objects/
In short, while we don't technically fsync, we do much better. If the local disk suddenly explodes, we won't lose confirmed writes.
(I wrote much of said storage layer.)