О разнице: в дополнение к этому контексту инъекция обеспечивает лучшую безопасность статического типа. (Я написал пост о модели децентрализованной архитектуры, которую вы можете создать с помощью внедрения контекста: http://gasparnagy.com/2017/02/specflow-tips-baseclass-or-context-injection/)
Почему контекст сценария? Прежде всего, эта функция существовала до внедрения контекста и использовалась во многих учебных пособиях и т. Д. Так что она более известна.
Кроме того, контекст сценария является несколько более простой концепцией программирования. Вы просто получаете и устанавливаете некоторую глобальную переменную. Для внедрения контекста вы должны понимать конструкторы, поля экземпляров и локальные переменные. Я думаю, что это важные вещи, которые нужно выучить в любом случае, но может быть слишком много одновременно (без посторонней помощи).
Контекст сценария также может быть полезен, когда вы пишете универсальные плагины SpecFlow, и вы не хотите зависеть от мелких деталей системы управления зависимостями конкретного проекта, но в любом случае это довольно особый случай.