Because there really are not that many good guys.
I set up a "good but not great" season criteria of 6 Win Shares, and 0.12 Win Shares Per 48, then analyzed the data over the past 5 years. http://bkref.com/tiny/HaR3F
There are over 400 players who play in the NBA every year. If you assume a turnover of 10% a year, that means about 600 guys have trod the boards over the past 5 seasons. Of those 600 guys, how many have had even 1 "good but not great" season?
How about doing it more than once?
How about doing it 3 times in 5 years? 40 guys. 4 times? 22 guys. All 5 years? 9 guys.
So when someone asks you to trade one of the guys who has been a 3X guy in 5 years, you are trading a guy who is a top 6% player over that time period. A 4X guy? top 3%. And trading or losing a guy like LeBron? He is a 9 out of 600 guy -- top 1.5%.
When you get guys in return, there is a very high likelihood (roughly 78.5% chance) that they will never achieve the "good not great" season in a 5 year stretch. There is an 87.5% chance that they will not have two good seasons, a 94% chance that they will not have 3, a 97% chance they won't have 4 and a 98.5% chance they will not have 5.
So, why would you trade your star? You wouldn't, unless you are sure he is declining.....and soon. The Wolves traded Garnett before 2007-08 season. They thought he was declining. He was, but he still had five straight good years in Boston -- one of only 10 guys to put up 5 during that stretch.
In their defense, the Wolves did get Al Jefferson, who had 3 of 5 good seasons. But then the Wolves traded Jefferson for Kosta Koufos and a low #1, thus effectively turning one of the top 25 players in NBA history (Garnett) into next to nothing.
So, when people are telling the Knicks to trade Carmelo, the Knicks know that Carmelo's replacement almost certainly will not be anywhere near as good as Carmelo. The better idea is to ADD good players next to Melo. This worked with a floudering Kobe and Gasol, with a frustrated David Robinson and Tim Duncan, and with Paul Pierce and Ray Allen and KG. It is, by far, the better strategy. You don't just say "Our team sucks, trade our best guy." History teaches us - there just are not that many really good players. You need to keep the one you have.