Have used both professionally (but mostly IDA). Its definitely not surpassed IDA in every category yet but it gets closer every update.
I think IDA still wins in at least: disassembler quality of the popular instruction sets (e.g., some knowledge of undocumented instructions, sometimes control flow inference trips up where IDA's doesn't), function signature detection, decompiler (marginally), plugins available, UX polish (but I have much more experience in IDA than Ghidra so that might just be me).
I think Ghidra wins for architecture availability, scripting API design & documentation, extensibility, and speed of improvement.
Probably many more categories im not thinking of but if Ghidra were to match exceed IDA in the above that would likely convince me to switch over.
One way in which Ghidra excells is that it comes with a TON of processor definitions. IDA charges extra for those and the quality of the Ghidra definitions tends to be higher IMO. It makes Ghidra a better tool for embedded processors.
Nah, I don't actually have a use for firmware decompilation. I've used ghidra once just to poke around, but that's it.
My understanding is that IDA does some things a lot better, but at a significant cost. Ghidra has become the de-facto tool for hackers and makers simply because it's free.