Edit: Just a note, I'm not saying this is OK for apps to do, but to call it a theft is ridiculous.
I can think of at least two differences. First, the developer profits from one but not the other. Second, the developer intended one but not the other.
We evaluate the morality of accidental waste differently from that of deliberate taking for personal gain.
On the other hand, if you look at this from another perspective, inefficient software wasting power means no one gains. If the same power was being used for mining, then someone gains. If I were forced to choose between these two alternatives, I would definitely pick the latter.
And, all else being equal, if someone writes inefficient code and has bad intentions, it's even worse.
Is one of those considered stealing?