Expedia sets their own rules, and have every right to do so. Your are purchasing the room from Expedia, and agreeing to THEIR terms and conditions, not the hotels. The hotels have a legally binding agreement with Expedia, allowing them to do this. Good luck with Judge Judy.
The reason Expedia will not let you cancel, is so they have a guaranteed booking. That is why the price is so low, and how they can undercut the hotel. Most hotels have price guarantees, but differences in terms void those. Apples to apples comparison.
No you cannot dispute your credit card charge just because you cancelled by the HOTELS cancellation time. You made no agreement with the hotel, you made it with Expedia, with full disclosure that there is no cancellation. Furthermore, you cannot call and cancel with the hotel, you MUST cancel with Expedia.