They actually do. The type constructor maps types to types (which are Hask objects), and `fmap` maps the functions (which are the morphisms).
I meant functors where the objects being mapped aren't types, but type inhabitants, and the morphisms being mapped are not arrows between types, but arrows between type inhabitants. (I suppose this also has to do with "the only category in Haskell is Hask", rather than types also being themselves categories?)