Столкновение традиций.
Можно сказать, что началось с Наполеона. То есть, до него, конечно, в разных странах были всякие браки по нужде, регистрация у мирового судьи и так далее, но именно Гражданский кодекс Наполеона стал в вопросах бракосочетания основой для современного законодательства. А конкретно - в той части, где говорилось, что церковь может быть послана лесом, а настоящим браком считается только тот, который зарегистрирован в евро-ЗАГСе. Этот кодекс распространился по всей Европе, и примерно к середине века добрался и до России.
И если в Европе всякие католики-протестанты были вынуждены смириться с тем, что разные религии надо между собой мирить светским образом, то в России православный люд слегка прифигел с такого подохода - мол, понаехали тут со своих европ всякие нигилисты, понавезли всякой ерунды, а настоящий брак - это только венчание. Поэтому в нашем языке и прижилось значение "гражданского брака" не как светского, а как противоположности церковного. То есть, в России какое-то время был церковный брак, "настоящий", и всё остальное, получившее название "гражданского брака".
Ближе к концу века в России тоже была введена обязательная светская регистрация брака, но словосочетание осталось вплоть до наших дней.
При этом, с точки зрения лингвистики нельзя говорить, что оно неправильное - если вы скажете "гражданский брак" в значении "сожительство", то вас все однозначно и правильно поймут, в этом значении словосочетание постепенно входит в словари, оно используется как в разговорной речи, так и в литературе, и даже в судебных решениях. Поэтому, собственно, нет никаких оснований утверждать, что оно неправильное, просто это исторически сложившаяся фраза, и то, что она не совпадает с языком юридических документов не делает её какой-то плохой - ведь вы не станете в обычной речи использовать юридически точные фразы типа "причинение смерти", "лица без гражданства", "орган исполнительной власти" или даже "явное неуважение", заменив эти слова на более разговорные, исторически сложившиеся и понятные.