Потому что полет этих ракет был выбран так, чтобы они обошли эти комплексы и оказались в зоне недосягаемости российских С-300. Кроме того, С-300 не может стрелять куда попало. Нужно целеуказание, то есть сначала эту цель нужно обнаружить средствами воздушного наблюдения. У России нет достаточного количества соответствующих самолетов, чтобы контролировать эту ситуацию.
Но и не означает, что могли сбить) Наплодили вопросов и везде в ответах сослагательное наклонение "вот ЕСЛИ БЫ, то мы БЫ"
А смысл?
Российские военные получили предупреждение от американской стороны, и они знали что будет удар, и если бы хотели помешать, то действовали бы через дипломатов, прямое же военное противодействие не привело бы ни к чему, кроме как к конфликту.
п.с. Надо понимать что российской власти то в общем то плевать на Сирию и Асада, у них совершенно другие интересы.