Hamlet himself does not know why he procrastinates the murder when he has “the means motive and opportunity”(4.4.2833-2835). But I think Hamlet hesitates to kill Claudius for religious reasons. The audience witnesses Hamlet admitting that he wants Claudius to go to hell, and that is the reason Hamlet hesitates to kill Claudius when he is praying (3.3.2375):
That has no relish of salvation in’t-
Then trip him, that his heels may kick at heaven,
And that his soul may be as damn’d and black
As hell, whereto it goes.
But as the play continues I think Hamlet is terrified of murdering Claudius because he doesn’t want to go to hell, and that is why he procrastinates the murder, because he is still questioning whether or not he would be damned…