The government has taken control of Bitcoins in the past, and will continue to do so in the future. All it takes is a warrant.
Also, unlike cash, you're making your transaction history public. Any central government in the world can see this. You have to jump through a lot of hoops and use multiple blockchains to anonymize your Bitcoins.
Transfers incur a network fee with Bitcoin as well. I doubt anyone making a small purchase wants to pay fees that might be a significant percentage of, or exceed, their purchase subtotal.
You cannot send Bitcoins "at the speed of light". On average, the Bitcoin network processes 7 transactions per second.