Do Banks Really Give Out New Expiration Dates?
This is a value-added service usually called something like Account Updater (emphasis mine):
Serving as an automated, dedicated, and secure clearinghouse, VAU works by establishing a streamlined process for the electronic exchange of updated account information among participating merchants, acquirers, and Visa card issuers. So, when a cardholder's information changes, you will receive updated account information which may include new account numbers, new expiration dates, closed account and/or contact cardholder notifications.
("acquirers" means banks in this context)
To get the updated information, the merchant has to have previously performed a transaction with the card being updated, so it's not like someone you've never entrusted your card to can use this process to steal your info.
This is instead seen as a win-win for merchant and consumer. If your credit card is re-issued for expiration, you don't have to run around to all your recurring subscriptions (Salon, LifeLock) and your stored card profiles (Amazon, Xbox Live) updating them before you can continue to purchase from them. And the merchants don't have to chase you down or discontinue service because your card changed and you didn't realize that's the card they were billing.
I find it really hard to imagine that my bank would go around giving
out my updated expiration date to companies so that they can charge me
The bank makes money off of the interest they charge on your credit card purchases. If your subscription billing is interrupted because of a card change, or you end up not purchasing those from stores because they didn't have an updated card, the bank loses money (well, "lost opportunity" money). It's not at all hard to imagine why this is attractive to banks, merchants, and (quite frankly) consumers.