The Oxford English Dictionary suggests that - though the origin is obscure - the word �spiv' is probably a variant of 'spiff', which meant to dress up, and the adjective 'spiffy', meaning "dressed up to the nines", as it were.
A key feature of the spivs in the 1930s/1940s was the flashy and expensive way they dressed compared with the drab way most other men appeared. They could afford to do that because they had lots of money from their black-market dealings.
Re the programme Fred mentions above, I seem to recall the furthest back they traced it was to the word �spive' dating to the late 19th century. It meant someone involved in the illegal selling of railway tickets.
So the word 'sharp' - whether in the sense of dress or of practice - was always associated with spivs.