What Scott said, but also: it's quick and easy for the programmer
to apply, rather than spending time trying to fix the underlying
problem (why is the proxy/cache server/web server/user's browser/??)
not handling caching properly when it sees a dynamically generated
page. This real fix, after all, might be completely inaccessible
depending on who's hosting the site.
'Cheap' was also meant to imply quick & dirty & less-than-ideal, since
ideally the programmer shouldn't have to worry about this...