Throwing sand, hitting, pushing etc is quite commonplace in ds1's preschool. Children at 3yrs are often quite impulsive. They're still learning how to behave appropriately.
Some children are more challenging than others, they will repeat 'naughty' behaviour s more often, they will persist despite being consistent in consequences.
Your dd is still hitting at 3, I would say that is fairly common in that age group, less so at 4. No child is perfectly behaved. They all go through trying phases.
It sounds to me like you're trying your best, and she will get there. The only thing I would say is that if your dd is likely to hit or throw sand, then sit by her while she plays and try and intervene before another child is on the receiving end.
I'm sorry you're struggling right now. I've had moments of despair with ds1, and have spent alot of time worrying about his behaviour. I'm lucky in that I have lots of friends with boys and no-one honestly batted eyelid (except me). I have always been really zero tolerance with hitting. Straight to time out and then an apology.
Our problems now are not physical but verbal, lots of name calling etc.
Ds1 has also been on the receiving end of a fair few wallops from other children, provided the behaviour is dealt with swiftly and effectively by the parent & ds can see that they have had a good telling off then I don't have an issue with this ( has never been hurt).
Ds1 has one friend who is really wild, a lovely little boy but his parents really baby him & pretty much ignore his kicking & hitting. Quite frankly, it is bloody hard work, I find myself not really wanting to meet up as I'm in the position of then having to discipline him too. It's very awkward but I am of the opinion if the mum gets offended then tough. I limit meet ups too.
I would never cut off someone who is clearly trying but I might hover by my own child to protect them. Would also not meet in homes where arguing over toys may happen. Would go for soft play or park and then really supervise. Even avoid places with sand if that's s problem.