Why do we reset/clear at 1010 (10) when designing a BCD Ripple Counter
Because it's a ripple counter not a synchronous design. 

In a synchronous counter you would generate a "load 0" or "reset to 0" signal when the counter reached 9, and it would be done on the NEXT clock edge. 

In a ripple counter it happens immediately, so you wait till the counter reaches 10 then reset it immediately. The counter actually reaches 10 - but only for a few nanoseconds before clearing. In the context of a ripple counter, this is acceptable; glitches and momentarily incorrect outputs are part of their operation.