From my very basic understanding (I have only been using Linux since December), AppImages are single-file executables (kind of like a portable application) whereas Flatpaks are somewhat "distro-agnostic" packages that are sandboxed by default. They're sort of different ways of trying to solve the cross-distribution compatibility issue.
I like Flatpak better on desktop just because it's sandboxed and creates a menu entry automatically without me having to. It's generally easier to update a Flatpak too, but a dev could implement an auto-updater in an AppImage release if they wanted to. IMO, when a Flatpak isn't available, AppImages are fine, and you can extract the files from them with the --appimage-extract argument if you want to see what's in there or edit a config.