The first reason is that when boys go through puberty and get elevated testosterone levels their access to their emotional tears goes down. Basically, when boys are 12 they lose some of their connection with their emotional tears. My experience in working with boys and young men in therapy has shown me that they continue to experience the same emotional pain, but don’t have the tears as a way to release the pain. Boys that just a few years before could cry very easily, and did, now find it more difficult. The tears seem to have dried up. Big boys don’t cry.
The second reason is that boys and men live in a hierarchical world. The same testosterone that seems to have limited their tears now is pushing them to strive for status. Yes, for years scientists have unsuccessfully tried to tie testosterone in with aggression but that never worked out. The present view on testosterone is that it pushes boys and men to strive for status, to win, to compete, to come in first. So tell me, is crying in public a sign of winning or losing? If you cry in public do you appear dependent or independent? Clearly you look dependent and boys will work to avoid appearing this way since our culture, and most women, value them for their status not their emoting. Therefore boys and men will continue to strive for status in order to succeed and to impress the women.
If women were to suddenly shift and want to marry and have sex with men who were sensitive, and emotional you would likely see men change very quickly. But the way it is now, men are valued based on their status, how much money, power, prestige they might have. Crying in public is the antithesis of that. Big boys don’t cry.