From what I understand of icon design, the goal is to make something that's instantly recognizable when glanced over. Your mind shouldn't have to interpret colors, light sources, shading, depth, etc. just to recognize a brand/app's icon. The Twitter and Apple icons are
instantly recognizable no matter how small they are or how fast you glance over them. Facebook and Google have their icons as just letters with one specific color and typeface, and when you see that color + typeface together
anywhere you instantly recognize what brand it is for.
Flat icons may not take as much effort to make (which is debatable... in some cases, they take even more thought to create since you have to think about every little line and curve) but they do get their point across a lot faster and more effective than a fancy, shaded, intricate icon with tiny little details. In my opinion, if you can't easily draw an icon on a piece of paper in a few minutes, it's not a very good icon- it's more of a picture or a drawing.