SQL Server restore database file access error
Double check that the paths you are trying to restore to exist on the D drive. SQL Server will not create the directory path if it doesn't exist. 

If you haven't already, run the restore command with the verify only option MSDN.

If that is successful here are a few additional things you can try to isolate why it is failing


If you have the space on the SQL Server that created the backup, try to restore the backup there under a different file path and different database name (again make sure the temporary restore path(s) exist.)  This will confirm if the backup is valid and can be read by SQL Server.  Be very careful here to change the database name to something different and to give the file names a different name to not cause a problem with the current database.  (Example: change MyDB to Restored_MyDB, MyDB.mdf to Restored_MyDB.mdf and MyDB.ldf to Restored_MyDB.ldf in the restore statement.)
Confirm the account that you are using to do the restore,if it's not the same, has the same permissions that the account that did the backup does. 
Copy the backup locally to the machine you wish to restore it to and restore from the local drives. 
Change the file extension from dmp to bak.