It's happened to me twice recently, once in M&S (undercharged by £10) and in Mothercare (undercharged by £20) on both occasions a cheap item had been scanned twice and an expensive item not scanned at all.
Both times I thought 'that's cheaper than I was expecting' but didn't know for sure until I got home and looked at the receipts, I definitely wouldn't go back and ask to pay the correct amount. Sorry!