There are several challenges with keycaps actually.
1. As Damorgue said, strength. Keys are injection molded under high pressure, making the plastic much more dense.
2. Surface finish, again as Damorgue said, you can do some smoothing, but these are digital printers and most people print with layer heights closer to .2mm, which sounds small, but still leaves quite visible lines showing each level. It's kind of like building with bricks, one level at a time rather than carving and sanding.
3. While you can use a lower layer height and smaller nozzle, they increase print time drastically. A full keyset at normal settings would take much of a day as it is.
4. Color, most people only have the ability to print one color (I only need another motor to do dual and plan on getting one).
5. Shape is a big one... remember, everything is built from the ground up, this presents some challenges since keys are hollow. If you print them right side up, the center stem would either be too long, or the sides a bit short. If you do it upside down, you either will make a flat key, or your surface finish will be horrible.
Basically you can do it, but most people would be unhappy with them with current hobby level printers. It could be done quite well with STL (Stereolithography), which uses a laser and a special polyurethane, I even considered building one, and while cheap to make the printer, your prints are all a dull yellowish color and a keyset would probably run you a few hundred dollars in fluid. It's about 15x more expensive than printing with ABS as you need special chemicals.
SLS (laser sintering) has been used to make keys, and they offer a nice, though different surface finish and were made in metal, however, hobbyists are only just starting to find ways to do those cheap. The lasers alone are typically somewhere around $30k. Again, as with most 3d printing, you only get one color.