That’s really a loaded question. It depends on your particular use cases. In my case, I have some devices that aren’t supported by ZHA (or would need additional quirks to get working properly). I also have a disconnected HA stack, meaning I run HA Container in a separate docker instance, Z2M (and ZWave2JS) is running in another docker stack on a separate machine and MQTT is also running in another docker stack on yet another machine. So, for me, ZHA is out of the question because I maintain separate instances of pretty much everything. I also prefer Z2M because they seem to add devices faster than ZHA does and I tend to buy some weird, niche devices.
In terms of performance, I think they both perform about the same (I have no evidence to suggest otherwise), but I do find that editing devices is easier in Z2M than ZHA.
This is sort of my case. I have been using ZHA and I like it for it’s simplicity, but I recent purchased a Phillips Hue wall dial that doesn’t really work with ZHA. Someone made a blueprint for the device but I need Z2M to use it.