The shell-command works if I use the function as below.

(defun my-dired-open-execute ()
  (interactive)
  (let* ((file-name (dired-get-file-for-visit))
         (file-ext (file-name-extension file-name))
         (case-fold-search t))
    (if (file-exists-p file-name)
        (cond
         ((and (string-match "^r$" file-ext) (file-remote-p file-name))
          (let ((default-directory (or (and (eq major-mode 'dired-mode)
                                            (dired-current-directory))
                                       default-directory)))
            (shell-command
             (format "nohup /bin/apps64/software/R/R CMD BATCH --no-restore --no-save --slave \"%s\" &"
                     (file-name-nondirectory file-name)))
            ))
         (t (w32-shell-execute "open" file-name nil 1))))))