That's right.
An "on-us" transaction, one that simply requires RBC to update its database by debiting funds from RBC customer A and crediting them to RBC customer B, is free. (If your bank is charging you for that, switch banks!).
A wire transfer is more complex than an "on-us" transfer because it involves two bank database. RBC has to debit its database, and Bank of Montreal has to credit its database, and the central bank is usually involved as an intermediary. This often involves a wire transfer fee.