Lack of decent digital interpolation.
You're scaling the image down. That is using a nearest-neighbour interpolation process. It just looks at the closest pixel mathematically and assumes that colour.
What you want to do is some kind of better interpolation which any decent resizing program will allow you to select, such as bicubic or billinear which examine rows of surrounding pixels, do some math, average them, and sharpen the result.