I have a theory that companies do this when they don't trust their own hiring process. They're waiting for you to ring them and say, "Hey, I've got an offer from X? Are you guys going to get off the pot?"
More straightforward explanation is that the candidate is perfectly fine for the role so they don't want to send a rejection email, but then they have another candidate or idea for the role so they want to wait and see how that pans out first.
A month later, they've forgotten they've still got a candidate or two to say no to, or figure you're probably not waiting on tenterhooks for an answer.