These are all interesting answers, but a tad esoteric. The reason is rather simple. Contrast is good for readability, but too much can be considered unnecessary at best, and detrimental at worst.
Nearly all printed text is black on white paper...but rarely is it pure white paper. It's often an off-white. And even then, because it's printed, it's using reflective light.
On screen, where it's projected light, 100% black with 100% white is the maximum possible contrast. This can be overpowering, hence the preference by many to use a dark gray on white, or black on light gray.
There are minimum contrast requirements to meet accessibility and general legibility standards. You definitely want to meet those, but that also doesn't mean you need to max the contrast out at 100%, either.
Plus, a lot of designers feel that it looks better. To relate back to print, dark gray text can be seen as a more luxurious look, as it's more expensive to print gray text on paper than black. (Gray text at small sizes typically requires a gray spot color).
Bottom line: using less than pure black black on white when on screen better emulates what we read offline, meets contrast requirements, and, for a lot of designers, just looks better.