Por que $ PSItem não se comporta conforme o esperado ao usar um argumento -Filter baseado em colchetes?

Eu estava ajudando um usuário com esta pergunta, vinculada à minha resposta aqui:Script do PowerShell para adicionar usuários ao grupo A / D de .csv usando apenas o endereço de email?

Inicialmente, escrevi o script da seguinte maneira, usando um filtro baseado em colchetes paraGet-AdUser como segue:

Import-CSV "C:\users\Balbahagw\desktop\test1.csv" | 
  Foreach-Object {

    # Here, $_.EmailAddress refused to resolve
    $aduser = Get-ADUser -Filter { EmailAddress -eq $_.EmailAddress }

    if( $aduser ) {
      Write-Output "Adding user $($aduser.SamAccountName) to groupname"
      Add-ADGroupMember -Identity groupname -Members $aduser
    } else {
      Write-Warning "Could not find user in AD with email address $($_.EmailAddress)"
    }
  }

Contudo,$_.EmailAddress falha ao preencher um valor. No entanto, alterar oGet-ADUser filtro para um filtro baseado em string funcionou como pretendido:

$aduser = Get-ADUser -Filter "EmailAddress -eq '$($_.EmailAddress)'"

Qual é a estranheza que estou experimentando e por quê? É porque quando estou usando colchetes, ele é tratado como um novo escopo e o$PSItem não vai seguir?