Moreover, not everybody is plumbed into the German banking system. If you came to Germany from abroad, is your foreign debit card going to work at the airport? Who knows!
It’s unreasonable for passengers to not know if they will be able to pay for the flight, until 3 hours before. What if their bank’s anti-fraud puts a hold on the payment? What do they expect passengers to do, get on the phone to their bank while at the check in counter?
Payment is made in advance to give passengers time to resolve payment issues. It is mutually beneficial for passengers and airlines.