I was on a team that used them because we needed to run our own virtualization layer, which standard EC2 instances disallow. I don’t recall seeing any performance difference compared to a comparably sized virtualized instance, but we weren’t really looking.
Especially on Nitro or Firecracker instances, I wouldn’t expect the “virtualization tax” to be very high, and metal instances come with some very real drawbacks in terms of capacity. E.g., it can be difficult to launch a new instance on demand if you will only accept an entire machine, and this can make auto scaling pretty dicey.
EC2 instances have per-second billing, so I would encourage you to run some realistic benchmarks on a variety of metal and non-metal instance types to see what (if any) performance benefit they would offer your application