Hate to answer "you can't", but
ExpirationDate really is not exposed in client side API (I double-checked with dotPeek).
There is some information about upgrade however, from that you might be able to calculate the expiration date indirectly. Namely, there's UpgradeReminderDate: SP.Site.get_upgradeReminderDate(). Of course, the reminder date is not very reliable, because it can be extended. Also, some other information about upgrade can be found in the UpgradeInfo property.
Also, I checked web services and sandbox, and unfortunately they don't expose anything about expiration date either.
The only crazy idea (definitely not recommended!) that crossed my mind is to web-scrape the expiration date from the SiteStatusBar control somehow :) But this control works only in the context of current web, so this might be very complicated technically...