No puedes modificar los elementos de un array con una lista de inicialización, que es lo que pretendería hacer la línea
Cita: tablero = {1}; //Inicializamos todo el array a 1(vacío).
La respuesta simple podría ser: inicializar() recibe un array con valores, y no se puede asignar nuevos valores a un array a través de una lista de inicialización.
Aunque en realidad, inicializar() no recibe un tTablero, como podría parecer, sino que al pasar un array de estilo C como parámetro de función, ese array "decae" en un puntero a su primer elemento (esa es la regla). Entonces, lo que recibe inicializar() es un puntero a un array de N elementos. De modo que inicializar() podría haberse escrito así:
void inicializar( int(*tablero)[4] )
Y a ese puntero no le puedes asignar una lista de inicialización.
Tu compilador ha hecho lo que pudo para darte un mensaje de error, pero ha podido poco, ciertamente.