We could debate this for centuries, I'm sure, but let's attempt to try anyhow:
1) If men care about you, the last thing that they want to do is hurt you. Instead of thinking about the situation, Men can sometimes just want to say what makes their partner feel GOOD. It's a dangerous slope, so if you want your man to be honest with you, you're going to need to NOT only tell him you'd appreciate his honesty but try your hardest not to cry or get upset when he does say the truth. If he tries to be honest with you and you get offended or cry, it might (unfortunately) send him the message that he should go back to bottling up his feelings.
2) They are afraid of being judged. In society, it is often acted like women are much smarter than men (you especially see this on sitcoms like According to Jim, King of Queens, and Family Guy). Men are made out to be idiots (who are usually fat) and women the endearing, intellectual ones. After having all this outside pressure, sometimes Men can be afraid that what they say is stupid or not up to certain standards of yours.
3) Due to such a strong pressure from men growing up to be tough, many were taught by their fathers or male role models that emotions=weakness. If men were taught to not show emotion, it can be more difficult. If you think about it, it's like trying to break a tradition that was passed down from their family that is familar.
4) Some men have been so hurt in the past and have had their heart broken that they don't want to risk it again. Even if they care about you deeply, they may not have had enough time yet to let go of the past and open up their heart to you. As women, I think that, soemtimes, it is so easy for us to open our hearts and expect our partner to do the same. We need to be patient with them and let them do it at their own pace. If you rush them into something, you will have never given them the chance to be in control of their own actions.