Most Italians pay for things on a day to day basis with cash - from their morning coffee to dinner that evening and everything in between. For those of us who have grown accustomed to paying for milk and bread at the grocery store with a debit card, it can be a little jarring when the waiter at a decent-sized restaurant balks when you hand him a Visa.
Most of us know that businesses pay a fee each time we pay for something with plastic, but in many countries businesses are willing to pay that fee because the culture leans toward the "customer is always right" end of the scale. Italy, for all its perks, is not the land of customer service. If something is an inconvenience for a shopkeeper - such as paying the Visa fee - he'd just as soon not have the machine at all. This works in Italy, because it's already so cash-centric - it's the visitors who sometimes get caught out. Oh, and don't worry - almost every hotel in the country (and certainly all the big ones) take plastic, as do train stations.