Haskell, 140 bytes
candyCrushS xs = case break ((>= 3) . length) $ group xs of (ys, []) -> concat ys (ys, zs) -> candyCrushS $ concat (ys <> drop 1 zs) candyCrushS xs = case break ((>= 3) . length) $ group xs of (ys, []) -> concat ys (ys, zs) -> candyCrushS $ concat (ys <> drop 1 zs)