Mixing the roles of ScrumMaster and technical contributor goes against conventional wisdom for a variety of reasons:
The roles are different. A ScrumMaster's role is to facilitate the Scrum process. This includes making sure that all of the lifecycle activities in Scrum happen and are effective. Facilitating meetings such as a daily scrum, sprint planning, sprint reviews and sprint retrospectives is part of this. A technical contributor's role is to work with the other team members to figure out how to get the work done and to do it.
It's hard to do a good job when you are multitasking. In particular, it might be hard to justify doing ScrumMaster work when the team needs coding done to meet a sprint goal. Or, you might simply have too many context switches to be productive.
There’s only so much time. Given limited time to learn and enhance your skills, it's hard to learn how to be a better project and people manager while still keeping current on technical skills.
The roles have conflicting aspects. A technical contributor might tend to be “the person with the answers" rather than facilitating self-organizing teams.
The mixed roles may not produce what is perceived as direct value. For the ScrumMaster to be effective at removing impediments to the team's productivity, particularly in an organization new to agile software development, he may need to spend a considerable amount of time educating the team and others in the organization.