I know this reply is a little delayed.... however let me attempt to illuminate the subject of why the GameCube isn't necessarily the easiest platform to deal with, and why typically companies choose to develop first for PS2 rather than XBox or GameCube.
First off, lets deal with the later subject. Its a simple game of numbers for the upper management of the companies, and a sound strategem at that. There are more PS2 machines out there than any other console. There are still more PS2 machines purchased annually than any other console. The largest market share of game consoles is PS2, so it makes sense that first and foremost you develop for that platform. Now then, if you can engineer your code to be cross platform, you can spend many man years (team of 20+ for 18 months) developing for the primary platform (PS2) but only a few man years porting (team of 1 or 2 for 18 months) to the other platforms (XBox and GameCube).
Now for the techical diffculties leading from developing cross platform games and the GameCube's particular woes. First, the GameCube doesn't have as much physical memory as the PS2 or XBox. The PS2 has 32 MB of memory available for the runtime, the geometry, the physics representations, the textures, display buffers, etc. It is fortunate to have separate memory allocated for the audio subsystem. The XBox, however, has 64 MB of unified memory that is shared for everything, audio, display buffers, geometry, game runtime, textures, etc. The GameCube has 24MB of memory for general use for the display buffers, geometry, game runtime, etc, and 16 MB for audio. There are tools for stealing 8 MB of the audio memory to use for game runtime memory, but it has restrictions (its horrible slow, can't be used for anything the graphics chip wants to talk to and must be managed carefully). The GameCube can do DXT1 texture compression (S3 Compression) but unfortunately that doesn't do transparency very well (like at all really... 1 bit transparency is neigh usless), so what you end up having to do is horrible texture compression color channel swapping that results in alpha textures being twice as big as they need to be. Did I mention the GameCube doesn't have a vector processor? That's right, the main processor has to do all of the vector processing for multibone weighted skinning and so can't be done in hardware on the GameCube like it can on XBox or PS2. Then there is the problem of the actual DVDs being smaller than a normal DVD. So not only must the developer manage to get a game designed to run in 32MB of memory run in 24MB, but they must also fit all the data on a disc half the size. Never mind that you also must make sure that you've correctly stored the data (oh yeah, the GameCube is BigEndian vs Little Endian like the XBox and PS2) so developers must take special care to ensure that the data gets byte swapped properly or else numbers like 1 turn into numbers like 65535. There are also the game play concerns of the XBox and PS2 having more buttons (3 more) and all of them being analog or digital vs the GameCube having only 2 analog buttons. Nevermind that the PS2 and XBox both have 2 rumble motors that have an analog speed vs the GameCube's single motor that can Go, Stop, or Stop Right Now. That can make it difficult to make the rumble effects feel consistant across platforms.
Don't get me wrong, the GameCube is a great little piece of hardware. In fact, I was the one slated originally to do the GameCube port of that game PsiOps that was so elegantly referred to as a "piece of crap". But developing for the GameCube isn't as rosy as one would think, and to be honest it doesn't make a whole lot of economical sense for 3rd party developers to spend so much time and so much pain trying to make sure their game can be ported to GameCube when they'll only end up selling 20,000 units or so.