Oi Paulo!!
O .forEach realiza alguma ação (ou seja, uma função) sobre cada elemento de um array.
Olhe o exemplo abaixo:
let numeros = [1,2,3,4,5];
function multiplicaPor2(numero) {
console.log(2*numero)
}
numeros.forEach(multiplicaPor2);
O código acima printa no console os valores de numeros multiplicados por 2, ou seja "2,4,6,8,10", pois para cada valor de números, a função multiplicaPor2 foi executada.
Agora vamos substituir a function por uma arrow function para que ela fique parecida com o código da aula:
let numeros = [1,2,3,4,5];
numeros.forEach((numero) => {console.log(numero*2)});
Os dois códigos realizam a mesma tarefa, porém a arrow function foi utilizada para que não fosse necessário declarar uma função separada e assim diminuir a quantidade de código escrita.
Voltando para o código da aula: o array this._inscritos é composto por funções.
Então o código
notificar(){ this._inscritos.forEach(func =>{ func(this.categorias); } ); }
pode ser entendido como: para cada função (func) dentro de this._inscritos, execute funccom this.categorias como parâmetro.
Espero que tenha ficado claro, mas se ainda houverem dúvidas, comenta aqui para que eu tente te ajudar novamente!