You don't need fancy chunks of metal and plastic to use cash. You don't even need electricity, much less an internet connection, to use it. A three-year-old kid can use it just as well as one-hundred-and-three-year-old great-grandma.
A lot of the time, you can't even tell whether the bills are genuine or not. But that doesn't prevent billions of people around the world from exchanging cash every day. And if dollars suddenly became untrustworthy, people will just switch to another currency or fall back to crates of fish and shiny stones.
Compare that to cryptocurrencies that are being touted as the future of distributed, "censorship-resistant" cash. Sure, they're distributed, but censorship is as easy as cutting off the target's internet connection (or even blocking some ports). If you're a dictator in North Africa, just flip the switch and all the rebels are suddenly broke! Cryptocurrencies also require everyone to broadcast every transaction to the whole world, and all it takes is one mistake to connect a set of addresses to a real identity. Geeks can mix their coins and hope there's no trail left, but good luck getting grandma to use it correctly.
Programmers love to talk about elaborate ways to prevent double-spending and whatnot. But in order to be a plausible replacement for cash, I think virtual currencies need to solve some of these usability problems first. Spending a few satoshis needs to become just as easy as pulling some quarters out of your pocket.