As far as I know (which is not a lot), the AppImage basically wraps everything into a self-contained executable for a Linux application, not all that unlike what some Windows applications do. The downside is that it may (or rather, WILL) bloat the size of the program. Conversely, the end user can probably be confident that their program will run the way it's supposed to. Might be a really good way of distributing "fresh" releases of old software, which can only run with depreciated packages.
...There are other means of distributing a program as well. Flatpaks generally seem to be well-received, seemingly more so than Canonical's "Snap" format. All of these methods, mind you, are generally of a similar mind: to make Linux applications agnostic to the individual Linux distribution. That's really about all I know. That said, Flatpak strikes me as the best option, all things considered.