Well I'd definitely comment on it with the cashier and make sure it was right, for all I know (although I would know, really as I pay attention to offers when I'm in a shop - I'm just pretending that I might not be aware of the offer for the sake of argument) it could be the get one free of a buy one get one free promo and so going through at £0.00. However if I said nothing, kept my head down and left the shop before they realised their error then yes, I would see that as stealing.
What if it was a self-service till? There's no human contact, you scan something and it's £0.00. Your intent was never to walk out without paying, it's just gone through at essentially nothing. The system hasn't, at any point, flagged it up that this should be something that is paid for.
Exactly the same as if the cashier gives me too much change, it's the cashiers mistake and if I say nothing then it will come out of that cashiers wages (as far as I'm aware) which means that that particular instance would be stealing from a minimum wager.
It doesn't come out of their wages (they can't do that).
You can agree or disagree with me as to whether it's moral or ethical, but it still isn't theft regardless.