There might seem to be little need to explain the term 'fast asleep', as it is a basic everyday expression that few of us would give much thought to. But, giving it some thought, we might also ask, why 'fast' and also, why 'asleep' rather than 'sleeping'?
The common meaning of fast is now 'speedy', 'rapid', which clearly has little to do with sleeping. The 'fast' in 'fast asleep' derives from the Old German 'fest', meaning 'stuck firmly'; 'not easily movable' - as in 'stuck fast'.
'Asleep' derives from 'sleep' in the same way that nautical adverbs like 'aground' and 'astern' derive from 'ground' and 'stern'. To be 'fast asleep' was to be stuck firmly in sleep, analogous to a beached ship being 'fast aground'.
John Foxe is the first author known to have used the expression in print, in Acts and Monuments, 1555
And I looked that the old bishop should have made me an answer, and he was fast asleepe.
Many early citations interchange 'fast asleep' with 'in a fast sleep'. Notable of these was William Shakespeare, who used that term to describe Lady Macbeth's nocturnal ramblings, in Macbeth, 1605, of course:
Since his majesty went into the field, I have seen her rise from her bed, throw her night-gown upon her, unlock her closet, take forth paper, fold it, write upon't, read it, afterwards seal it, and again return to bed; yet all this while in a most fast sleep.
See also: sleep like a top.