Could be a number of things causing that; wiring, corroded contacts and or plugs, faulty gauge or sender, or actually reading correctly and reflecting true temps at the engine. I wouldn't expect them to be exactly the same but pretty close otherwise there may be another issue at the engine end providing the above items all check out. As Bud mentioned, taking temps right at the engine is your best bet to compare with the readings at the helm. They won't match because you're taking an external measurement but it'll give you an idea/starting point.
I've heard that some gauges are sealed and some are vented to atmosphere. If sealed and you get fogging, the seal has likely failed. Anything exposed to atmosphere will eventually accumulate pollutants that are impossible to get out without dismantling the gauge. The problem is that most are pressed together and not meant to be taken apart. Some gauge manufacturers like Faria will repair their gauges for a fee. Probably not worth it though for lower end units by the time you pay for the repair and shipping, etc. I doubt your vintage would be under warranty.