Про styled-components основано на том, что я читал об этом подходе, опыта с ним нет
Корневое отличие в том, что styled components - это css-in-js, стили пишутся шаблонной строкой, вставляются в атрибут/тэг style . Препроцессоры связывать с этим уже посложнее (вероятно, в этом нет потребности)
css-modules проще, можно использовать препроцессоры, собирать в бандлы, чанки, да хоть в тот же тэг style
Это если очень коротко) Почитайте о css-in-js, всё должно быть уже написано