Since the main task in machine learning is to select a model and train it on some data, the two things that can go wrong are 'bad model' and 'bad data'.
To teach a toddler what a apple is, all it takes is for you to point to a apple and say “apple” or sometimes repeating this procedure a few times. Now the child is able to recognize apple in all sorts of colors and shapes.
Machine learning is not quite there yet; it takes a lot of data for most machine learning algorithms to work. Even for very simple tasks you typically need thousands of examples, and for complex tasks such as image or speech recognition, you may need millions of examples.
As shown in a famous paper “Scaling to very very large corpora for natural language disambiguation” that even fairly simple machine learning algorithms performed almost identically well on a complex problem of natural language disambiguation, once they were given enough data (as you can see in below Figure 1).