The GameCube was load more fun to play than the Xbox, it was smaller, easier to use, easier to set up, it had features Xbox didn't have, it had the bonus of having a pretty good line up of games out the door.
With Xbox you had a lot of flash, a lot of talk and a lot of fucking money, and money talks and therefore people listened. I don't think anyone can honestly predict why the GC did not sell as well as it should have, aside form FPSes, the GC had a better 3rd party line up all around and some of the best damn 1st party games of the last two generations. Halo was it for the first what two years of the Xbox life, and in that time GameCube was still struggling to pick up sales.
We look back on it in hindsight and think, no DVD player support, no HDD, no online, purple color, tiny memory cards, etc are stupid reasons for not selling and we think that in the end those things didn't matter, but in the days when GameCube was a commodity and not a memory, those were the exact reasons people cited for not wanting a GameCube or choosing an Xbox over the GC. They may be irrational reasons but if someone said that was why they picked one system over another, well then that is it that is all we have to go by.
I think a lot of it was just Nintendo had a bad reputation and did not do much to fix it, they made some great games, they made some fantastic games even, but they did makea lot of stupid decisions. Overall the world will never know for sure why the GC was not was as scucessful as it should have been, but we do know that some people cited it as not playing DVD's, well in the first year of it's life I honestly think that maybe was a deciding factor for early adapters of the competition, but in the end it did not affect overall sales. Some people cite the childish look and label it as just for kids, well in the end that is not true but a GameCube was a lot more kid friendly than Xbox and once it got under 100 bucks I am sure being kid friendly played a role it it's longevity, but overall I do not think it was deciding factor.
The discs were small, in the beggining coming from DC and PS1 people were getting tired of the long load times, Cube supporters touted the small discs and the answer because it reduced load times, in the end that did not have a big impact on sales, missing key features or having a gimped ported due to size constraints could have been an issue, if it was the case but I can not think of any specific examples of what GC games were gimped due to size limits. Even so it waqs something a fanboy would say and not really a deciding factor for the non-fanboys so not a very relevent excuse.
I think it came down to mostly Ps2 was so popular already because of Ps1 that a lot of people honestly thought owning a Ps2 was the "in thing" and owning a Cube was the "geek" thing that it maybe stupid but I honestly think for a lot of irrational fanboys and hormonal teenagers with low to no self esteem it sure as hell could have been an honest to god excuse to not buy a GC.
In conclusion, there is not one single reason why the GameCube did not do as well as it should have, but just a ton of irrational and stupid reasons that just made no sense but to those who were thinking them up. In the end GameCube was a fantastic system that will be remembered by some as one of the best damn gaming experiences of their lives, while others will remember it as the purple lunch box (purple is my favorite color so not a sales point for me but a plus anyways)