I encounter it in many books as well as web. Natural Language Processing and Machine Learning are said to be different subsets of Artificial Intelligence. Why is it? We can achieve results of Natural Language Processing by feeding sound patterns to Machine Learning algorithms. Then, what's the difference?
Because they are different: One does not include the other.
Yes modern NLP (Natural Language Processing) does make use of a lot of ML (Machine Learning), but that is just one group of techniques in the arsenal. For example, graph theory and search algorithms are also used a lot. As is simple text processing (Regular Expressions). Note I also said "modern NLP" - the statistical approach to NLP is a relatively recent development over the past few decades. I understand a more formal approach (e.g. based on parsing formal grammars) was the norm back in the 1960s/1970s.
Similarly ML does not have to use NLP, and usually it doesn't, although some applications might use NLP techniques (eg. to process text input).
I think @winwaed's answer sums it up quite well, and I agree.
However I would also add that I would say that NLP is part of a specific application area, namely text processing, and hence there is a lot of domain-specific knowledge that is contained within the techniques that are used. For the most part ML techniques are general purpose and can be applied in many different applications, although ML techniques are used in text processing as well, and as winwaed says by NLP practitioners too.
I think it's no different to saying "what's the difference between bioinformatics and ML?"