La dichiarazione friend è una dichiarazione in un certo senso slegata dal resto della classe, dato che si riferisce a roba che sta fuori da essa; per questo motivo, non è implicito il "template<typename mType>", ovvero che la funzione che stai rendendo friend sia un template, perché questo è implicito solo per i membri della classe. Per questo motivo, dunque, la dichiarazione friend che ti serve necessita del template, dato che stai rendendo friend un template che in linea di principio è indipendente da quello della classe.
In alternativa, credo che sarebbe bastato scrivere:
ma dovrei controllare sullo standard.codice:friend std::ostream& operator<< (std::ostream& , Matrix<mType>& ); friend std::ostream& operator<< (std::ostream& , const Matrix<mType>& );