Easiest way to do that is CB Privacy or CB Conditional so you can condition the profile view to only be accessible to moderators and user self. Either plugin can do this, but does so in a different way.
Aside from that you'd need to jump through some hoops since you can't have separate profile edit and profile view tab access permissions. You'd need to have the tab hidden on profile, create another tab for moderators, add Custom HTML fields to substitute in the fields from that hidden tab, but the users self still won't be able to see this on profile and there isn't really a solid solution for that beyond public visible tab with IF substitutions. Again, easiest to use a plugin built for doing this.