Ah, this is a much debated question in the literary world, one with many possible answers, all depending on one's personal opinion of the matter.
Here are some possibilities: he's a coward, he's indecisive, he's morally scrupulous, he's depressed, or he thinks too much. Those are just a few possibilities, and, it could also be a combination of several of them all at once. I'll go throughe each one, so that you can ponder each and decide which one jives the most with your own thoughts on the play.
He's a coward. It's not an easy thing to kill someone--it takes a lot of courage. And, so, he's afraid to do it. He's a young guy, not used to going around killing people, and so takes quite a bit of time to get up the courage to do it. He also wants more definite proof of Claudius's guilt before he murders him. So he uses that as an excuse to cover his fear. Take for example, how he didn't kill him when he had a chance, while Claudius was praying--that could point to cowardice.
He's indecisive. Take a look at his monologue "To be or not to be." In this monologue, he goes back and forth, back and forth, weighing the pros and cons of dying. Other monologues reflect his indecision--he switches between having courage or just talking about having courage, he bemoans his lack of action, but then states reasons for not acting. He just can't make up his mind what to do about the situation--how to kill him, when to kill him, IF he should kill him.
He's morally scrupulous. This means that his morals keep him from murdering Claudius. Murder is wrong, and Hamlet's uncomfortable with it. He ponders, several times, the consequences of such an action, and the afterlife and what comes with it. He doesn't want to kill a potentiall innocent man, so wants proof. He also doesn't want to kill Claudius while he is praying, for fear his soul will go to heaven; instead, he wants to kill him when he is doing something evil, to send his sould to hell. So, his morals keep him from action.
He's depressed. Anyone who has been depressed knows how debilitating it is; it makes one mope about and not want to do anything at all. It makes one questions one's own thoughts and worth. At the beginning of the play, we see a horribly depressed Hamlet, who feels like the entire earth is "rank". His family and friends try to cheer him up, to no avail. Even his girlfriend, Ophelia can't cheer him up. This melancholy carries him about, keeps him down, keeps him overanalyzing his thoughts, and keeps him from acting.
He thinks too much. Every single little action he takes, he analyzes it to death. He spends all of his time debating and analyzing, and no time action. By the time he 's done debating in his mind, the time for action has passed.
Any of those possible reasons might work; think about it, and come up with one that works for you. I hope that those thoughts helped; good luck!