The main reason is that an Add method has to exist. There are many reasons to store the result into an existing matrix, for example reducing memory allocations, or reducing the number of variable names, as in a.Add(a,b). The question is if an Add function is worth it on top of the add method. I don't think
var c mat64.Dense
c.Add(a,b)
is all that much more trouble than
c := mat64.Add(a,b)
Simplicity argues against providing both, especially since for consistency essentially every method would have to be duplicated.