Why does adding a dashboard widget in includes/admin.php fail?

The problem is here:

require_once('includes/admin.php');

It should be:

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

The original code actually sources a core WordPress file with the same name.