It might be lack of lube. But, doesn't that usually cause wavering around the reading, rather than a constantly high reading?
I was told and since have always used grease on speedo / tacho cables and oil on clutch and throttle cables. I've never had to replace one, so it seems to work fine. There's a lot of rotation going on in the cable and oil gets spun down and out. It needs very little grease, not caked on. I was also told not to grease the last 4 to 6 inches below the speedo. Don't recall why. Maybe to avoid dirt making a grinding paste. I remove the cable from its sheath and clean the cable first, probably do this about every 2 years. It's easy, so a good first check, before suspecting anything worse. Also, at least you'll get to see if there's anything visually suspect with the cable.