Can a Drupal view show some fields for one role and other fields for another role without having two page views?
You can add all the fields to the view and than hide some of them in either a hook, a preprocess function or a template file.

There views module provide many hooks for you to use i suggest the views view pre render hook.

If you choose the preprocess route than you will need to find the correct template first. Go to the view configuration page and look for a link called theme info. That link will be placed in the advanced column at the very bottom.

After you know which template you need add the corresponding preprocess function to your THEME.theme file.

Fit the views-view-unformatted.tpl.php a function called THEME_views_view_unformatted_preprocess will work.