I've used Flatpak, it feels somewhat sluggish;
I had once upon a time used Snap (unwittingly), never again;
Appimages... with a lack of options, they seem to run well, although the two I've used seem to take away quite the chunk of memory.
But if it's a reasonable choice, I'll always go with natively distributed or locally compiled binaries. They may be janky sometimes, but in my opinion they beat the "just ship the entire computer br0" philosophy that clearly comes from the Windows ecosystem.
How does that philosophy come from Windows? Windows was all about tying your application directly to the host OS via the old .net framework and COM. You had to wait for the OS to update before your app could, or the OS could randomly update and break your app
Containers as a technology are almost entirely a Linux thing as well, Windows ships with a full Linux kernel to support it now.