CapRover has support for multi-server deployments using Docker Swarm. It also has a nice dashboard with built-in monitoring and such. There is a marketplace of sorts with single-click deployment for certain applications.
Dokku on the other hand has support for buildpack deployment as well as Procfile support for running multiple processes.
I prefer Dokku. The main reason is that I only need a single server for my apps and running Docker Swarm adds complexity.
I wrote about some other differences in my blog: https://www.mskog.com/posts/heroku-vs-self-hosted-paas/