There was a sitewide IT town hall in NY when I was there and some senior MD brought this problem up. "We're investing a lot of money in training people and then having difficulty retaining them." From the crowd of around 1000 a voice cried out "Stop training them!"
To flip it around - do you feel other people who leave the company did something shameful ? Do you see judging from others (especially outside of co-workers where it's incentive based) ?
I think as job market turns from oversupply to undersupply the culture changes simply out of nececity.
Loyalty in the work place is a one-way street. It goes from the worker to the company but not the other way around.
It absolutely is cultural.
I'm not saying that anyone should feel ashamed to negotiate for better compensation (quite the opposite!), but I'm also not sure that you can look at those little uncooked narcissists and conclude "this is how a human being naturally behaves". I think it's pretty normal for a person with mature emotions to feel at least a bit bad when making demands.
Source: personal experience