Neither is inherently "bad" — it depends on your hair and goals. Sulfates (e.g. sodium lauryl/laureth sulfate) are effective detergents; they clean well but can feel stripping on dry, curly, or color-treated hair. If that's you, a gentler surfactant may feel better. If you have oily hair or use lots of product, sulfates are perfectly reasonable.
Silicones (dimethicone, etc.) coat the hair to smooth and add slip and shine. They're not harmful; the only real consideration is that heavier, non-water-soluble ones can build up over time, which a normal clarifying wash removes. "Silicone-free" isn't automatically better — it's a preference, and for many people silicones are exactly what makes hair manageable. Match the ingredient to your hair type instead of avoiding whole categories on principle.