You can't use the user object as the identity. You can, however, use a property of the user object:
$DSA | foreach {Set-User -Identity $_.distinguishedname -RemotePowerShellEnabled $false}
Because you already have an array of user objects in the $DSA variable, using a pipeline is less efficient than using a simple "foreach" statement:
foreach ($u in $DSA){Set-User -Identity $u.distinguishedname -RemotePowerShellEnabled $false}
If you prefer to use a pipeline (and avoid the overhead of creating an intermediate array just to one time), then this is better:
Get-User -ResultSize Unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like 'Sales Associate')" |
foreach-object {Set-User -Identity $_.distinguishedname -RemotePowerShellEnabled $false}