Why do credit unions in Germany charge a monthly fee (Kreditvereine Kostenloses Girokonto)?

The simple answer is "because many people do not care enough". There are still some (internet) banks that will offer you a giro account for free, though most of them require you to have a certain monthly income payed to this account.
The banking business is - as all services - subject to competition. If people do not care about finding a cheap bank...welll...banks will charge you for having an account. Simple as that.

However, there is another side of the story. In the not so distant past, when interest was still positive, the bank could get away with giving you 2% for your money while making 4% with the money you deposited. In the age of zero and negative interest, they do not really gain anything on your money. There is simply not enough safe investments that offer an attractive rate (even the mortgage business is down to around 1% at the moment). Therefore banks will try to earn money a different way, e.g. by rasing fees.

why do Germans allow their credit unions to charge them these fees? Why wouldn't they just vote to eliminate these fees?

Keep in mind that not every customer of a credit union is also a member. Sure, they have lots of members, but e.g. "my" Volksbank's lists about 60 % more customers than members. So in general, it may not be in the interest of the members to offer zero fee accounts.I've heard that some Volksbanken offer lower accounting fees for members, though.

Others have explained that zero fee on checking accounts/Girokonten have/had been around for a while, but in the last few years banking fees have been increasing in general.
You may expect Volksbanken to be rather on the high side with their fees since one of the services they sell is that still run a rather extensive network of physical branches. Not every village any more, but for sure lots of small towns (my village had their branch closed many years ago, the neighbor village still has one)

What is still rather common is that the monthly fee is reduced under certain conditions, such as agreeing to receive your mail electronically and meeting a minimum amount of incoming money monthly or quarterly. Often, this does not need to be money coming in from an external source such as an employer or pension. Personally, I set up the required amount to circulate automatically between my two checking accounts. This keeps both accounts in a low(er) fee state. The money employed for this has a very good "ROI". BTW, this is not sneaking aroung the banks' rules, this was very officially suggested by the bank when I spoke to them what to do against the fees.

My experience, in the US, is that Credit Unions do not necessarily have better rates than regular banks. There was a time they did but the banking industry has seem to normalize. I found this while shopping for banks over the past 5 years or so.

I found the best deal for me, initially was a reginal bank. Through several mishaps and attempts to solve mistakes that they were making regularly, I decided to go with a big, well known bank. The kind of bank I would have historically avoided due to high fees.

This big bank, despite my prejudice, offers me free checking and free checks with no minimum balance or other requirements. In fact they even pay a low interest rate on my checking account. They meet my needs very well and I am very happy.

Contrast this to a large local credit union. In order to have my checking account fee waived, I need a direct deposit monthly and a minimum balance. For a while I was being paid quarterly so 8 months out of the year I would have had a fee. Plus they have fewer branches if I had to deposit a physical check or get money from an ATM.

Perhaps the regulatory requirements are much higher in Germany, so those are past onto the consumer. Perhaps the credit unions are not free but of much lower cost. It is hard to say.

The best thing you can do is find a bank that meets your needs and pay as little as possible for that service. We do this with mutual funds and are okay with it.