They're fine for a certain type of practice if you don't have them set to Lv. 8-9, which is when they start immediately reacting to your inputs. You will generally improve at any game if you play it for a long time, especially if you know what to practice. I used cpus a lot for practicing my spacing and frame traps/basic combos when I didn't have anybody else to practice with, and I still do occasionally. They can also be decent for learning basic things in match-ups, like punishing that characters recovery, or knowing what attacks in general are good for punishing the enemies attacks.
On the other hand, they don't really perform any combos or edge-guarding, they literally can't specifically target your bad habits like players will do because they're very simple AI, and they tend to throw out unsafe moves occasionally if you're even somewhat close to them. Good players will try to get in your head and will be better at keeping you in disadvantage than CPUS, so CPUS don't really prepare you for this sort of thing at all. They also tend to do the same things repeatedly and won't mix up their options. For example, Fox and Falco will literally Phantasm into you from offstage at the exact same height nearly 100% of the time whenever it's possible, and Roy will never recover low and will always sweet spot the ledge at the exact same angle every time. Playing them at a higher level than 7 is even worse because they will always use air dodging as a defensive option in the air, even if you attack them close to the ground which sets them up for the exact same air dodge punish multiple times in a row because of the landing lag on air dodging.
TL;DR: They're fine for practice/warming up if they're below level 8, but they're still not the best replacements for practice with a real human.