Оба слова со значением "мужская одежда" в современном русском языке употребляются довольно широко, причём в самых разных сферах. Никаких стилистических помет (например, "разговорное", "просторечное", "сниженное") ни то, ни другое не имеют, следовательно, с точки зрения лингвистики, являются полными лексическими синонимами.
Обратимся к толковому словарю Т. Ефремовой.
О слове "сорочка" там же.
И всё же разница есть, но историческая и практическая.
Рубашки, рубахи обычно шили из грубого материала, покрой не отличался изяществом, и предназначались они для повседневной носки прежде всего простолюдинами.
Сорочка была сродни нижнему белью, имела делкатный крой и материал к ней подбирался нежный, приятный для тела. Разумеется, позволить сорочки могли себе люди состоятельные.
Вероятно, так и прижилось: обычные рубашки спортивные, джинсовые, гавайские, поло и др, но под пиджак, смокинг, фрак нужна сорочка.
Вспомним из поэмы В. Маяковского: