Dado que vuelas hacia y desde Berlín con la misma aerolínea, te recomiendo encarecidamente que les preguntes si te exigirán un visado. No sólo es probable que obtengas la respuesta mejor/correcta, sino que reducirá cualquier problema con la comprobación de tu visado al embarcar en Canadá si es necesario.
Hay dos aeropuertos en Berlín (más un tercero que se está construyendo para sustituir a los dos primeros), pero supongo que se refiere a Berlín Tegel (TXL).
Tegel cuenta con varias terminales configuradas de forma diferente, siendo las terminales A y C las principales para los vuelos internacionales.
La terminal A, en lugar de tener una única zona de control de pasaportes/aduanas como la mayoría de los aeropuertos, tiene controles de pasaportes/aduanas individuales en cada puerta. En consecuencia, es imposible pasar de una puerta a otra "en el lado del aire", por lo que tendrá que pasar por el control de pasaportes independientemente del lugar al que vaya a conectar, y para ello necesitará un visado.
La Terminal C es una disposición más típica, con una zona de tránsito disponible para la mayoría de los pasajeros en conexión que no requiere pasar por el control de pasaportes. Los titulares de pasaportes de muchos países (pero no todos) pueden pasar por esta zona de tránsito sin necesidad de obtener un visado, lo que incluye a los ciudadanos de Marruecos.
En resumen, si su compañía aérea utiliza la Terminal A, necesitará un visado. Si su compañía aérea utiliza la Terminal C, es probable que no lo necesite. Pero en cualquier caso, consulte a la compañía aérea para conocer sus recomendaciones y siga lo que le digan.