The terms are nebulous because they are new
Being in the middle of a job search in the 'data science' field, I think that there are two things going on here. First, the jobs are new, and there is no set definitions of various terms, so no commonly agreed upon matching of terms with job descriptions. Compare this to 'web developer' or 'back-end developer.' These are two similar jobs that have reasonably well agreed upon and distinct descriptions.
Second, a lot of people doing the job posting and initial interviews don't know that well what they are hiring for. This is particularly true in the case of small to medium sized-companies that hire recruiters to find applicants for them. It is these intermediaries that are posting the job descriptions on CareerBuilder or whatever forum. This isn't to say that many of them don't know their stuff, many of them are quite knowledgeable about the companies they represent and the requirements of the workplace. But, without well defined terms to describe different specific jobs, nebulous job titles are often the result.
There are three general divisions of the field
In my experience, there are three general divisions of the 'job space' of data science.
The first is the development of the mathematical and computational techniques that make data science possible. This covers things like statistical research into new machine learning methods, the implementation of these methods, and the building of computational infrastructure to employ these methods in the real world. This is the division farthest separated from the customer, and the smallest division. Much of this work is done by either academics or researchers at the big companies (Google, Facebook, etc). This is for things like developing Google's TensorFlow, IBM's SPSS neural nets, or whatever the next big graph database is going to be.
The second division is using the underlying tools to create application specific packages to perform whatever data analysis needs to be done. People are hired to use Python or R or whatever to build analysis capability on some set of data. A lot of this work, in my experience, involves doing the 'data laundry,' turning raw data in whatever form into something usable. Another big chunk of this work is databasing; figuring out how to store the data in a way that it can be accessed in whatever timeline you need it in. This job isn't so much taking tools, but using existing database, statistics, and graphical analysis libraries to produce some results.
The third division is producing analysis from the newly organized and accessible data. This is the most customer facing side, depending on your organization. You have to produce analysis that business leaders can use to make decisions. This would be the least technical of the three divisions; many jobs are hybrids between the second and third divisions at this point, since data science is in its infancy. But in the future, I strongly suspect that there will be a more clean division between these two jobs, with people win the second job needing a technical, computer science or statistics based education, and this third job needing only a general education.
In general, all three could describe themselves as 'data scientist', but only the first two could reasonably describe themselves as 'machine learning engineer.'
Conclusion
For the time being, you will have to find out yourself what each job entails. My current job hired me on as an 'analyst,' to do some machine learning stuff. But as we got to work, it became apparent that the company's databasing was inadequate, and now probably 90% of my time is spent working on the databases. My machine learning exposure is now just quickly running stuff through whatever scikit-learn package seems most appropriate, and shooting csv files to the third division analysts to make powerpoint presentations for the customer.
The field is in flux. A lot of organizations are trying to add data science decision making to their processes, but without knowing clearly what that means. Its not their fault, its pretty hard to predict the future, and the ramifications of a new technology are never very clear. Until the field is more established, many jobs themselves will be as nebulous as the terms used to describe them.
Data scientist
sounds like a designation with little clarity on what the actual work will be, whilemachine learning engineer
is more specific. In first case, your company will give you a target and you need to figure out what approach (machine learning, image processing, neural network, fuzzy logic, etc) you would use. In second case, you company has already narrowed down to what approach has to be used. $\endgroup$