system("comando") es una funcion de la libreria stdlib, que envia un comando al sistema operativo, claro que si no usas el mismo s.o. el comando no hara lo que se espera de el, en mi caso uso linux y ademas de no hacer la pausa da un error de comando no encontrado
por el contrario getchar() es una funcion de la libreria estandar de c que recoge un caracter de la entrada estandar (stdin), es decir espera (que es lo que buscamos) a recoger un carater, tambien podia haber utilizado un "std::cin >> notas;" y tambien hubiese esperado a introducir un dato (la pausa) y es mas del estio c++
system()
https://es.wikipedia.org/wiki/System_%28stdlib%29
getchar()
http://c.conclase.net/librerias/?ansifun=getchar
espero se entienda la diferencia