But i wasn't grounding pin 10 of the Arduino !
Whew. That's good. It wasn't clear.
How is my grounding pin 10 of the shield with a jumper any different than the Arduino grounding it programmatically ?
The Arduino is doing more than that. Think of the SS pin as an "Hey, I'm talking to you!" pin. The device responds only when the SS pin is in one state, and ignores the master when the pin is in the other state. The slave needs to monitor the pin, to determine if it is being talked to.
I suspect it does that using edge detection. No edge == no "Hey, you, listen up". Grounding the pin means that no edges happen (the pin does not toggle from HIGH to LOW or LOW to HIGH).
I don't know whether the SS pin is HIGH to indicate that a particular slave is supposed to listen, or if LOW means that a particular slave is supposed to listen. I could determine that, if important, but it is the slave's responsibility to know. That would determine, though, whether grounding the pin or tying it to 5V was appropriate. Of course, if it is edges that cause the slave to wake up and pay attention, then you have no choice but to run the wire.