How To Remove or Hide Appearance->Background from Admin Menu

Try adding a filter instead. See this answer for more details

add_filter('admin_menu', 'admin_menu_filter',500);
function admin_menu_filter(){
   if (! is_admin()){
       remove_submenu_page( 'themes.php', 'background.php');
   }
}

Also double check your link to the page from the admin menu. More details in the WordPress Codex

To remove a settings page for plugins that use a slug like /wp-admin/options-general.php?page=certain-plugin-settings use this code:….remove_submenu_page( ‘options-general.php’, ‘certain-plugin-settings’ );