During my time, things did change when we got to Vietnam, where labor was dirt cheap and the US Army hired local girls to work in our consolidated mess hall. Our local national hiring were done within our own battalion. No contractors to take a (big) cut. We had a broken lieutenant who was made Civilian Personnel Officer, had a small staff of VN girls to help him do the hiring, firing and paperwork.A perfect description of the reason (well, maybe not the only reason) my dad hated his WWII military service. To hear him tell it, he was still pulling KP up to the day he mustered out as a Sergeant. Guess some things never change.
When the volunteer army was created, the cost of military labor rose and kept on rising. Military managers no longer had tons of low-paid military labor at their disposal My sense is that now there is a lot of contracting out of dining facility operations. Especially in places lately like Iraq and Afghanistan, where cheap local labor was used for the dirty work -- organized by American contractors, of course.
Beyond the mess hall or dining facility, soldiers now get a Basic Allowance for Subsistence. Which means they can eat wherever they want. When they choose to eat at a government dining facility, they are charged for it. Or they can eat at home off post, or at MacDonalds. But the monthly BAS is about $407 for enlisted personnel, that only goes so far. The problem for the military is, they are running dining facilities, but within a system where soldiers don't have to eat there if they don't want to.
People here who've had recent military experience can update this, as necessary.