Потому что многие языки Си-подобные, а в си решили сделать так.
Например в паскале для присваивания используется :=, а для сравнения = и <>.
В Go для присваивания также может использоваться :=
В F# для присваивания (изменения значения переменной) вообще <- используется, а для сравнения =
Кстати, в математике нет операции сравнения а есть только утверждение, что что-то равно чему-то. По тому для присваивания, с точки зрения математики, логичнее использовать как раз =