Você tem dois problemas. Techie007 identificou o primeiro - Você deve prefixar seu comando DO com @
se quiser impedir que o comando seja ecoado na tela. Isso não é necessário se o ECHO estiver desligado.
O outro problema é um artefato muito chato de como o FOR / F interage com a saída unicode do WMIC. De alguma forma, o unicode é indevidamente convertido em ANSI, de forma que cada linha termina com \ r \ r \ n. FOR / F quebra em cada \ n, e apenas retira um único terminal, deixando um extra indesejado. (Observe que \ r representa um caractere de retorno de carro e \ n um caractere de nova linha)
A saída da WMIC inclui uma linha extra vazia no final. O extra indesejado impede que o FOR / F ignore a linha (não é visto como vazio). Quando você ECHO o valor que você obtém ECHO is on.
Existem várias maneiras de lidar com isso, mas o meu favorito é passar a saída através de um FOR / F extra para remover o indesejado \ r.
for /f "skip=1 delims=" %a in ('wmic volume where "Driveletter like '%C%'" get label') do @for /f "delims=" %b in ("%a") do @echo %b