I have seen a few posts on 2 way atm's that only need 1 confirmation before it will dispense fiat, how is double spending avoided when only relying on 1 confirmation?
It is very difficult and very expensive to double spend a transaction that has 1 confirmation in the publicly shared blockchain.
Bitcoin ATMs limit the maximum amount that you can withdraw in cash in a single transaction and then charge a fee for that transaction.
This creates a financial disincentive to try and double-spend. The attacker would spend more attempting the double spend than they would steal, and their theft would not have a 100% success rate. This means that any attempt to double-spend against the ATM would result in a loss of total funds for the attacker.
The fee that the ATM charges is high enough to result in profit for the ATM even if an attacker occasionally succeeds. If the fee is $5 and the maximum withdrawal is $500, then an attacker would have to succeed more often than once every 100 attempts in order for the ATM to experience a net loss.