It doesn't necessarily have to be an "either/or" type of thing. You can try out spreadshirt for free to see if it would fit what you're trying to do.
Spreadshirt offers more dark colors due to their flex/flock printing options. They also offer more varied printing locations. However, the flex/flock printing has some limitations (number of colors, intricacy of design, needs vector graphics).
CafePress offers a bit more ease of customization of the premium storefronts. They also have more bulk editing tools and easily allow shopkeepers to buy their products at base prices. They use direct-to-garment printing for their black shirts which can print unlimited colors (but not as bright vibrant).
I like testing them all out and using them for different purposes
For text t-shirts with simple graphics, a spreadshirt shop can work well. For more colorful t-shirts, I think a cafepress shop might be better.