I tried the following to create a user and assign a home directory to the user.
$comp = [ADSI]'WinNT://localhost,computer';
$user = $comp.Create('User', 'account14');
$user.SetPassword('Welcome1$');
$user.put('HomeDirectory','C:\Users\account14');
$user.SetInfo();
Here the directory accountis not already present. So ideally it should be created and assigned as the home directory. If we check the properties of the user account14, C:\Users\account14 is listed as the local path, but the directory is not created. In the properties dialogue box of the user, under the profile tab if we click apply, the directory gets created.
The .put() function only updates the property in AD. In ADUC, automatic creation of the directory when creating a new user is built into the GUI. If you want your script to do that, you'll need to reproduce that function in your script by adding the code to create the user directory.