Разработчикам ответ на этот вопрос очевиден, а остальных это изменение не затрагивает. :)
Основные (но далеко не все) причины.
1. cvs локально хранит только рабочую копию (слепок репозитория какой-то версии), git - всю историю версий. Поэтому все команды вроде просмотра истории изменений, ветвление, merge, переключение между ветками в cvs требуют общения с репозиторием, а при git делаются локально, что намного быстрее и удобнее. 2. Как следствие из первого пункта, полная копия репозитория хранится у каждого разработчика. Нет опасности потерять репозиторий и историю версий, как это есть в CVS, когда репозиторий находится на сервере в единственном экземпляре. 3. github - ресурс, специально предназначенный для хранения исходников и предоставления к ним удобного доступа. Его использование правильнее и надёжнее, чем мой домашний сервак. 4. Как следствие из (3), на github есть удобная система pull-requests и code review. Любой человек может предложить изменения, оформить в виде pull request, который удобно просматривать, можно комментировать по коду, и можно одной кнопкой принять (смержить). 5. github предоставляет полезные сопутствующие ресурсы - wiki page, issues и пр. 6. git как инструмент значительно современнее и удобнее, чем cvs. Он лучше организован внутренне, работать с ним комфортнее и безопаснее.