In my experience, most candidates prefer it. They get to use their own computer and own environment and nobody is pressuring them while they code.
It’s also most similar to the job, where I won’t be standing over their shoulder doing live coding.
Possibly because many quality candidates work / think better when not being watched. It is also likely far more natural for most people.
Better simulates the conditions of the job. I never have to write code on-demand in front of my boss with my job on the line. I get assignments and I do them asynchronously. Less pressure that way and I can do it right.