헷갈리다 is not knowing which of two things is which, and -아서/어서 names why. Overwhelmingly the reason in these lines is resemblance or quantity: 발음이 비슷해서 헷갈리나 봐요, 이 세 표현이 비슷해서 헷갈리는 거잖아요, 외아들이 많아서 헷갈려!. Unfamiliarity works too — 기차를 처음 타서 헷갈렸어요, "it was my first time on a train so I got confused." 모르다 is simply not knowing; 헷갈리다 is knowing both and being unable to keep them straight.