There is also a religious or spiritual component to Hamlet's reasons for delaying taking revenge on his Uncle. At first he is not sure if the ghost is, indeed, his father, or if he is an agent of the devil sent to tempt Hamlet into committing a grave sin.
"Ham. Angels and ministers of grace defend us!
Be thou a spirit of health or goblin damn'd,
Bring with thee airs from heaven or blasts from
Be thy intents wicked or charitable,
Thou com'st in such a questionable shape
That I will speak to thee: I'll call thee Hamlet,
King, father; royal Dane, O! answer me:
Let me not burst in ignorance; but tell
Why thy canoniz'd bones, hearsed in death,
Have burst their cerements; why the sepulchre,
Wherein we saw thee quietly inurn'd," (Shakespeare)
Continuing with the idea of the spiritual, Hamlet is a deep thinking individual, when he returns to Denmark and finds that his father is dead and that his mother has hastily married his uncle, Hamlet's perception of truth, reality, becomes distorted.
He becomes fixated on contemplating how truth could be so subjective, how in fact the new truth is accepted by everyone, yet he cannot accept it, he struggles with the new reality, mourning his father and dealing with his anger against his mother and his contempt for his uncle all at the same time.
Hamlet is also consumed by thoughts of death which have a religioius component to them as well, because he is afraid of what will happen to him in the afterlife if he commits a grave sin, therefore, he is very slow to take revenge.
Analyzing why Hamlet fails to act quickly in avenging his father is probably the most popular critical activity related to the play. One explanation centers on Hamlet's very nature. When his father is killed in Denmark, Hamlet is away at school where he studies philosophy and religion. From the beginning of the play, Hamlet is portrayed as being serious and intelligent, a young man who thinks, examines, and analyzes various aspects of situations rather than acting upon them. As the play develops, Hamlet seems trapped by his own nature. He thinks obsessively, unable to arrive at a satisfactory course of action.
Another explanation for Hamlet's behavior points to evidence that he is unable to act decisively because he is deeply depressed. His father is dead, his mother suddenly has remarried, his friends betray him, his relationship with Ophelia fails, and he is thrust into a horrible situation not of his making, but one that demands his action. As his personal losses mount during the play, he sinks deeper into depression and thoughts of suicide. Two symptoms of depression are the inability to think clearly and to take action. Hamlet does seem to demonstrate both of these.
He delayed for a couple reasons. One is that he wanted to make sure his uncle was actually guilty of murdering his father. He didn't want to just take a ghost's word for it, he wanted more solid proof. So, he set up the fake play to gauge his uncle's reaction. Once he knew more solidly that his uncle was indeed guilty, he was more incliend to act on his revenge. Another reason that he delayed was probably just fear of murdering someone. He had the chance to kill his uncle while his uncle was praying, and he backed out, giving the rather lame excuse that he wanted to kill his uncle while he was doing something evil, so that he would go to Hell. In reality, he was probably just afraid--committing murder is a huge thing. He wasn't quite ready yet. Another possible reason that he delayed for so long is that he was insecure, and unsure if he wanted to do it at all. He spends a lot of time moping about the castle, pondering life and death, wondering what is in the afterlife, and doubting whether or not he should kill Claudius or not. He just isn't sure--he hasn't committed to the decision yet. He hasn't thought it through and decided to go for it.
I hope that was broad enough, and that those thoughts help; good luck!
Cynics might say that this would be an extremely short play if Shakespeare had followed the usual plot of the “revenge tragedies” that were so popular in Elizabethan England. Earlier versions of Hamlet had Claudius surrounding himself with guards so that Hamlet had to find a way to get at him. Without this plot device, Shakespeare had to find a more interesting reason to delay the death scene.
One clue is at the start of the play. The ghost of Hamlet’s father is a far more complex character than previous versions with his talk of purgatory, hell and crowing cocks. Remember that the question of heresy was on everybody’s mind in Elizabeth’s day, and this is a very Catholic ghost. The Anglicans had banished purgatory from the religious lexicon, and references to pagan symbols like cocks could get you burned at the stake. The discussion between Hamlet and Horatio about whether this was truly a ghost from Heaven or a demon from Hell would have resonated with the audience.
Beyond that, Shakespeare seems to be teasing us by setting up a variety of reasons for Hamlet’s delay, rather as he does with Iago in Othello. It is unlikely that Shakespeare had a terrible memory and could not recall what he had previously written. More likely is that he enjoys layering meaning over meaning, so that we get the famous duck-rabbit paradox, where we can only grasp one reason at a time.
The standard set of reasons (that you probably already know) include:
1. Hamlet could not make up his mind.
2. Hamlet had a Freudian Oedipal complex.
3. Hamlet was too intellectual.
4. Hamlet was too immature until the fateful sea voyage.
5. Hamlet was under the influence of the University of Wittenberg.
Take your pick or avoid simplistic answers and take them all, plus any more you can think of.