The primary reason is that an event driven program operates in an 'event loop'. This is where a programming loop cycles during normal execution of the program, checking for a specific event condition and executing the logic associated with that condition. See Event Loop on Wikipedia. They usually don't terminate until instructed to.
Command line applications usually follow a set sequence and terminate once the program reaches the end of the code. They do not loop to check for the presence of events.