"There is" is an expression that signifies that something exists. Expressions of existence are usually used to introduce new topics to the conversation.
What this means is that you will only say "there is" when there is reasonable doubt that the listener knows what you are talking about. If you are using the name of something (a proper noun) to refer to it, the implication is that the listener is at least vaguely familiar with it.
When you say "Hamlet is on tonight at the theatre", you are implying that you expect that the listener is aware that there is a play called Hamlet which exists in the world.
If there was a completely new play that very few people had heard of called, for example, "Stacey", consider how the sentence sounds.
"Stacey is on tonight at the theatre"
It sounds okay (better than "There is Stacey on tonight at the theatre" because the context alone is enough to suggest the information that Stacey is the name of a play.) but you can still reasonably expect the question "Who is Stacey?"
You could reply to this with "Oh, there's a play called Stacey. That's what I'm talking about", which would properly introduce the concept to the listener so it could be talked about as a normal 'known' proper noun.
That is why "there is Hamlet on at the theatre" sounds so weird (despite being grammatically ok). The structure is being used to do a job it's not designed for. IE introducing a concept that is already well known.