Olá, tudo bem?
Quando você usa cadastro.keys(), você está iterando sobre as chaves do dicionário. Mas note que, dentro do loop, você está usando cadastro[chaves], o que significa que você está acessando o valor associado a cada chave. Por isso, os valores são impressos.
Por outro lado, quando você usa cadastro.values(), você está iterando diretamente sobre os valores do dicionário, então o print(valores) imprime esses valores.
Portanto, ambos os métodos resultam na impressão dos valores do dicionário, mas a forma como você os acessa é diferente. Se você quiser imprimir as chaves, basta alterar o print no primeiro loop para print(chaves).
Espero ter ajudado.
Qualquer dúvida, não hesite em compartilhar no fórum.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado