Checks may be not be accepted for another reason, the high fees attached to processing them. With cash, you count it and make a deposit. With a check, each check has to individually entered into some kind of data base to allow for the deposit to be prepared. You can't just bundle a bunch of checks together, add them up and deposit them in one pile with a single amount.
Then if a check gets returned, there are a bunch of fees, usually around $20.00 and that doesn't matter if the check is for $5.00 or a million. On top of that, if they get a returned check, that is actually a crime and maybe the Forest Service, or even the Federal Government has a zero tolerance policy and ALL bad checks must be collected or prosecuted. In private business, we can just write it off and move on. If they cannot by law, that can make that $5.00 bad check end up costing the government hundreds of dollars, which is why zero tolerance is often a bad idea, but that is another story.