“dashboard”-named PHP file doesn’t get included

WordPress has a file with the same name at wp-admin/includes/dashboard.php. Since you are using require_once PHP will not load a file if it already has been loaded.

The fact that your setup works locally, but not on your remote server, suggests that is has something to do with PHP server set-up. Locally require_once recognizes the different paths to the two files, your web server does not. So, I would try explicitly including your plugin’s directory in the call. Like this:

require_once (plugin_dir_path( __FILE__ ) . 'includes/dashboard.php');