Слово "собака" пишется через букву "о" потому что именно такая орфография идет от его происхождения. Слово "собака" пришло в русский язык из древних славянских языков, где оно обозначало дикаря, варвара. Изначально это слово писалось так: "събака".
В средние века в русском языке произошли изменения, связанные с развитием фонетики и орфографии. В результате этих изменений буква "ъ" в словах начала употребляться все реже и реже. Таким образом, слово "събака" перешло в "собака".
Сейчас в современной орфографии слово "собака" пишется без мягкого знака и через букву "о". Такой вариант написания установился и закрепился в русском языке на протяжении многих веков.
Таким образом, основной причиной того, почему слово "собака" пишется через "о", является историческое развитие языка и происхождение этого слова.