Прежде всего напомним, что так говорят
о приобретении дешёвом, но в то же время вполне стоящем, нужном, хорошем. Получается, что слово сердито может употребляться в «хорошем» значении?
Покопавшись в словарях, выясняем: раньше это слово действительно имело значение «дорогой», «хороший». Что же тогда за каламбур получается: «Дешево, но… дорого»? Но ведь дорого может быть не только по цене (особенно если вспомнить, что слово сердитый имеет общий корень со словом сердце).
Некоторые языковеды утверждают, что это выражение возникло как противопоставление пословице дорого, да мило, дешево, да гнило. Бывает, что и дешево, и сердито.
источник