Strings are managed strs. Hence they dereference into an str. Only std::ops::AddAssign<&'_ str> is implemented on String, so only &strs can be added to a String. I think that it would work just fine with &t instead of &*t, however I'm currently not in a position to test that.
Auto-deref coercions would've done this then, that's an implicit dereference. Note that if you did += t instead, chances are you'd get an error because there's no references in the type anymore for deref coercions to occur.