As a user I share your view regarding colors and background for body text. The contrast is also affected by the font size, and visual designers often use large font sizes. A smaller size, like 12px that I usually prefer, needs more contrast if you want to browse through or read fast.
A solution could be to set your own rules in userContent.css (e.g. find the file in the user directory: mozilla/firefox/xxxxxxx.default/chrome/) to fix the text colors. Downside is that it affects all sites and you have to restart the browser to let changes take effect.
My solution is to use an extension that allows me to make changes on the fly and turn it on or off when I want, and set my own rules for any specific site I want.
The extension/addon I prefer for the moment is: https://userstyles.org/
A global setting you can try for start and then edit and specify for only the hard to read sites:
/*** general readability ***/
Hope it can be of any help.