Might be a matter of perception, but I believe Bun is advertising itself as a drop-in replacement whereas Deno is primarily focused on being a better runtime (native TypeScript, different security model wrt modules, comes with test runner, linter etc).
So while they're definitely competitors to an extent, the difference in approach should be taken into consideration when you're deciding which one to pick.
Deno is making it easier to move from Node to Deno in various ways lately, but it has its own philosophy (use web standards, don't adopt ideas/technologies from the past that turned out to suck, etc) so I don't think they are aiming to be able to replace Node for every use case with no changes to your code.
With TypeScript 5.0, though, it has become a lot easier to have a large monorepo full of TypeScript code that works with Node programs, Deno programs, and web apps / code that runs in the browser.
We still use Node a lot at work, but Deno is getting more use as it is generally a better experience. But that's not really a function of it getting "closer" to Node; for the things I care about, Deno is typically somewhat different to Node, but better.
(Haven't used Bun yet myself; it's still a bit too new for me, and not yet cross-platform.)
If the goal is to minimize differences compared to node, then bun is better. But personally I feel deno to be incredibly refreshing, a new take on what js development looks like. Bun doesn't have the same vision. Bun is also a lot less mature than deno, as mentioned by others.
But the differences shouldn't be overstated, any js dev will feel home using deno rather quickly.
In Bun thread people mentioned going from Node is harder in Deno compared to Bun.