Is there a way to prevent a user from seeing a field on their user profile page?
Is this possible?


Yes, but not out of the box with Drupal.


  I'd prefer not to use a module.


Not an option unfortunately, you need either a contrib or custom module to make this happen. You could theoretically do it in the theme, but that logic doesn't belong there. 

Field Permissions is the go-to module for this.

Ah, just noticed your edit.

If you want the field to simply not be rendered, but you're happy for it to exist in the edit form, you can override the user-profile.tpl.php template in your theme, and just hide the field there:

&lt;?php hide($user_profile['foo']); ?&gt;


Or just hide it through the UI at admin/config/people/accounts/display if that works for your scenario.