Personally I find lvl 9's to be good training in certain respects, but not so much in others. I see many people talking about exploiting their AI, now you may say that makes them easy, but if you fight them based on flaws on their AI of course they will lose. If you fight them without those, or at least not targeting them, you get a much better fight against. Lets face it, a lvl 9 cpu does have some nice reaction times, and some even inhuman, like charging a smash as you warp towards them with metaknight at just the right time. This has helped me react and defend more, as well as try and use trick moves to draw out an attack, which does work on humans. The problem is like most people said, they dont act like humans in certain ways, such as reacting to repeating combos, or learning your moves. For example they will almost always smash up after you fall, or at least jump to meet you, if you have marth and ike its easy to counterattack each time this happens, where a player may learn to not attack always.... so the trick is to not simply lay back and say " well i can just do this, and their AI doesnt do anything about it" but to try and fight it without these tricks, and pretend you do have to variate your moves.
Of course its often better to fight people, but before you do so, I recommend fighting every cpu at lvl 9 at least twice (or once if you fight a long match) to see some of the possibilities of moves. I for example saw mario use his cape constantly after flying off of a cliff, and got forward enough to use upb and recovered, which taught me something. However i do agree their is no substitute for a player, as even a bad player can help you hone skills