There's a definite trade-off here: on the one hand, people are less likely to forget to take their cash; on the other hand, people who find a forgotten card in an ATM are unlikely to abuse it, but if they find cash, they'll probably just pocket it.
The first ATM I used in Thailand a few years ago, dispensed the cash and then gave the card back. Needless to say I walked off with my money and no card. That turned into a fun holiday....
I'd suspect that they want to keep the opportunity to seize the card until the last possible moment.
I think it has more to do with giving the machine the ability to not give the card back. :-)
ATMs that keep your card for the duration of the transaction only serve to decrease trust in the mechanism.
Remember, credit cards originated before there was universal ubiquitous connectivity. It's still no guarantee (think of a small merchant at some outdoor festival). EMV (Chip and PIN) cards have an offline mode which an bad guy can use. http://www.cl.cam.ac.uk/~mkb23/interceptor/
ATMs that keep your card for the duration of the transaction only serve to decrease trust in the mechanism.
In the past, there were modes that allowed you to overdraw your account with an ATM. I imagine this was done in consideration for unreliable communications links or banks that needed downtime in their account balances for batch transaction processing.
"Trust" is a deep and strange concept, but at the end of the day US ATM cards are only a mag stripe and a 4-digit PIN. We'd best not expect too much from them. :-)
I still think ATMs that eat your card up are terrible.
ISO-8583 defines two response codes that cause an ATM to retain your card:
41 - Pickup card (lost card) 43 - Pickup card (stolen card)
It is up to the issuing bank to decide whether to return those codes, or not.