I used a tiny framework called re-dom a few years ago. Good comparison in the sense that it's a minimal thing that doesn't attempt to implement a virtual dom. Still a nice framework but it's been a few years.
I haven't used solidjs or vue.js. A lot of these frameworks are based on the notion that javascript sucks for writing html and therefore you need some kind of templating. Kotlin doesn't have that problem as it has internal DSLs that you can write. So there's very little need for templating if you have a kotlin dsl for html, css, etc. It's all Kotlin. Makes things a lot easier. And if it's missing, you just add your own dsl or extend the existing ones. Extension functions are amazing for that.
I think the consensus on virtual dom trees is that they should mostly not be needed these days. And of course the state handling with Fritz2 is rock solid as it uses StateFlows and you simply use `data.render {}`on those. I think a lot of refactoring went into the underlying dom plumbing in the 1.0 release candidates. But basically if that's fast/good enough, what else would you need? You can of course still poke around in the dom directly if you need to. Useful if you are doing things like implementing drag and drop. Fritz2 doesn't stop you from doing that. But mostly, you don't need to.