Presumably so that you can implement some filters and channels that will alter the "image" in some fashion, but that only work in some browsers. Not including Firefox, which probably comes closer to being an accurate renderer than most of the others.
And to think, here I am wasting my time creating boxes that people type data into -- data that other people then utilize. Nope, I'm just not enough of a geek.
I do sometimes use a <div> with border and background color to create "on the fly" something that looks and acts like a button but isn't an image. That's maybe a tiny bit geeky. And I used some purple on a web page last week...
But there's limits on how geeky a 62 year-old guy with Parkinson's and a cardiac arrythmia can bring himself to become.