Оба слова со значением "мужская одежда" в современном русском языке употребляются довольно широко, причём в самых разных сферах. Никаких стилистических помет (например, "разговорное", "просторечное", "сниженное") ни то, ни другое не имеют, следовательно, с точки зрения лингвистики, являются полными лексическими синонимами.
Обратимся к толковому словарю Т. Ефремовой.
![dsAjecBaxszlOJ9UIbR8fLy83ipgLP5.png](/media/im/ds/Aj/dsAjecBaxszlOJ9UIbR8fLy83ipgLP5.png)
О слове "сорочка" там же.
![Oju7rVEQgwRsKcDP4zjH6L4n70I2WIu.png](/media/im/Oj/u7/Oju7rVEQgwRsKcDP4zjH6L4n70I2WIu.png)
И всё же разница есть, но историческая и практическая.
Рубашки, рубахи обычно шили из грубого материала, покрой не отличался изяществом, и предназначались они для повседневной носки прежде всего простолюдинами.
Сорочка была сродни нижнему белью, имела делкатный крой и материал к ней подбирался нежный, приятный для тела. Разумеется, позволить сорочки могли себе люди состоятельные.
Вероятно, так и прижилось: обычные рубашки спортивные, джинсовые, гавайские, поло и др, но под пиджак, смокинг, фрак нужна сорочка.
Вспомним из поэмы В. Маяковского:
![FpNpNI1Mnq9xmhv3ew9pM1jtqylvm4.png](/media/im/Fp/Np/FpNpNI1Mnq9xmhv3ew9pM1jtqylvm4.png)