Ah, the million dollar question. I guess there's a few reasons why:
1. One was brought up that way, our culture, our parents. One was taught not to speak up, and listen to the seniors instead. Because this has been habituated from a young age, it is carried forth in life as one ages. Taught by parents and disallowed in the culture, one then keeps quiet from habituation. - this I find is more pronounced in traditional Asian Cultures. But it doesn't mean that as we grow up, we still do not learn how to speak up.
2. One is lazy to improve on knowledge. Therefore leave it to others to learn and read up. From lack of knowledge, one cannot give their 2 cents worth, therefore decides to shy away and hide in silence so as to not be noticed. This arises from pure laziness, of not improving one's knowledge, so then there is nothing to add, and we stay silent. This also gives rise to selfishness, because essentially, the work is left for others to do, so that we can get knowledge from their input as they have read up and learned, and cared to improve their knowedge.
3. One is afraid of losing ego, and decides to save their face instead. Afraid to sound silly or stupid, afriad of being laughed at, we hide behind our ego with hopes of salvaging our face by staying silent. It's all in the mind - people might laugh at what you say, but respect/admire you for speaking up or people might laugh at you more for staying silent and lose respect because you are just... a lifeless background.
Whatever it is, we have a choice. Of course, there are times where we really have nothing to add or say. But prolonged periods of staying silent is not the way to go, as I've found out. By staying silent and not providing answers, people start assuming and things might get worst. By staying silent, it shows that no progress has been made, which is even worse as one embarks on a spiritual journey of self improvement. By staying silent, it just goes to show that we don't care - how selfish.