How do I hide a view's field based on role?
The most efficient way would be using hook_views_pre_view(), which allows you to alter a View at the very beginning of the process i.e. before any query is built/run and before any rendering takes place. You can remove the 'name' field handler from the View based on the desired logic.

/**
 * Implements hook_views_pre_view().
 */
function MY_MODULE_views_pre_view($view, $display_id, array &amp;$args) {
  if ($view-&gt;id() !== 'user_admin_people') {
    return;
  }

  $user_roles = \Drupal::currentUser()-&gt;getRoles();
  if (!in_array('my-special-role', $user_roles)) {
    $view-&gt;removeHandler($display_id, 'field', 'name');
  }
}


This solution assumes that you are only interested to serve this very specific use case - remove the field only from this specific View. Users might still be able to see the Display Names of users in other areas of the website.