One of the main reasons definitely is that there are too few merchants and shops which accept Bitcoin. Why should somebody "normal" use Bitcoin as payment option when it is hard to spend them?
There are in fact quite a bit sites where you can spend your coins online, and it's only spreading. However, the issue here is that people want to spend their coins locally in stores where they can buy their daily needs. I am quite sure that when local stores are adding Bitcoin as payment tool that much more people are willing to spend their coins.