No, the JVM is not always running. Usually it is not running at all. When you start a Java-based program, that starts an instance of the JVM process. If you start several Java-based programs, or several instances of one program, then you get several JVMs. They are not re-used, so old ones are useless and need to go away when your application is done, to prevent eating memory. Look at your system task manager and you will see when the JVM is running, and how many are running.
Even if there were a single JVM that is always running, your application's threads still need to terminate once your application's job is done, otherwise the threads would still be wasting memory and resources.
So regardless of whether the JVM is always running or not, being able to set threads as daemon threads is still useful, because you don't have to remember to manually stop them. Daemon threads stop themselves once the non-daemon threads are done.