Drupal will show / remove pages from the menu depending on whether or not a specific role has access to it. If you want to show the page in the menu but not the content to a specific role such as anonymous there are a couple of different routes you can go.
There is a module called field permissions which would allow you to set the page itself to be visible by everyone but you could hide specific fields from visitors. From drupal.org
The Field Permissions module allows site administrators to set field-level permissions to edit, view and create fields on any entity.
You could also achieve something similar if you were to use the panels module. You could set visibility based on role, thus hiding sections of content but still having your menu items visible.