But if DEX don't hold money, where the liquidity come from?
The users. Users post buy or sell offers for bitcoin against whatever pair they are interested in. Other users come along and accept those offers. Whoever is selling the bitcoin then sends it to a (preferably) non-custodial escrow, while whoever is buying the bitcoin makes the payment in fiat, altcoin, gift card, whatever. Once the payment is received, the bitcoin is released from escrow.
In a real DEX then at no point does the DEX have control over your coins.