Per million rows written: Bunny $0.30, Cloudflare $1.00 (first 50M/month free)
Per GB stored: Bunny $0.10/region, Cloudflare $0.75 (5GB free)
Bunny also has a lot better region selection, 41 available vs. Cloudflare's 6 (see https://developers.cloudflare.com/d1/configuration/data-loca...). Even though Bunny charges storage per region used where Cloudflare doesn't, Bunny still comes out cheaper with 7 regions selected. Bunny lets you choose how many and which regions to replicate across; Cloudflare's region replication is an on/off toggle that is in beta and requires you to use "the new Sessions API" (I don't know what this entails).
The main reason I haven't tried out D1 is that it locks you into using Workers to access the database. Bunny says they have an HTTP API.
I plan to stick with VPSes for compute and storage, but I do like seeing someone (other than Amazon) challenge Cloudflare on their huge array of fun toys for devs to play with.
Small companies often have much better technical support than large companies where you just get lost in the system. One of the reasons I moved away from R2 was that it was impossible to contact anyone about the serious issues I had with the product. I’m using Bunny for CDN and have found them to be very responsive.
Not a technical reason, but given Cloudflare's recent business practices where they hold you hostage if you don't upgrade to an enterprise plan are a pretty good reason to avoid imo.
Some ISPs have bad peering with Cloudflare (e.g. Deutsche Telekom). Not Cloudflares fault but it makes it a bad choice if your customers are in Germany.