One of the differences between mathematics and (imperative) programming is that the expression
$$i = i+1$$
has two meanings, i.e. an equation and an incrementation respectively. However those two worlds have non-trivial intersection, for example, mathematicians that use programming languages, or programmers that do mathematics. To put it shortly, when there is potential for confusion or ambiguity, it is beneficial to distinguish the two, and one way of doing that is introducing a new symbol, namely $:=$ or $\stackrel{\text{def}}{=}$ or $\stackrel{\Delta}{=}$ or $\leftarrow$ or yet something else (in programming there are sometimes == or even ===).
Observe, that in case $b = a$ there could be no ambiguity (it might serve both as equality and assignment). It is not rare that the context itself is enough to make it clear (e.g. all $=$ in the text are of the first or of the second type), and as such, there is no additional gain in introducing a special notation (which on other hand could confuse the readers). Finally, it is much easier to type in = than \equiv (and in $\TeX$ doing so makes the source code more readable).
I hope that explains something ;-)