Richarllison, a explicação para esta diferença depende de tópicos mais avançados da linguagem C, que são vetores e ponteiros.
Ao declarar uma string como char sit[10] estamos pedindo ao computador para reservar 10 espaços de caracteres na memória, criando um vetor. Em C, não é possível fazer atribuições de valores a vetores por definição da linguagem.
Já em char *sit estamos declarando um ponteiro, isto é, uma variável que armazena um endereço de memória. A atribuição é permitida aqui pois ela faz com que a variável sit aponte para o endereço de memória onde a string "Aprovado" ou "Reprovado" está armazenada.
Por mais que usar char *sit permita a atribuição, como se trata de um tópico avançado que pode causar muitos erros é recomendado que use a outra forma de declarar strings.
Espero ter ajudado, quaisquer outras dúvidas basta entrar em contato.