Remove meta box for specific page

The is_page() conditional relies on the global $wp_query WP_Query object which isn’t set on the edit post page. We have some other options though…

If we know the page ID we can test against $_GET:

/**
 * Remove metaboxes
 * 
 * @return void
 */
function wpse343020_remove_meta_boxes() {

    if( isset( $_GET, $_GET['post'] ) && 123 == $_GET['post'] ) {
        remove_meta_box( 'pageparentdiv', 'page', 'side' );
    }

}
add_action( 'admin_menu', 'wpse343020_remove_meta_boxes' );

If you really need to test against the page title or page slug you can hook in later whenever the global $post WP_Post object is available:

/**
 * Remove metaboxes
 * 
 * @return void
 */
function wpse343020_remove_meta_boxes() {

    global $post;

    if( ! empty( $post ) && 'contact' == $post->post_name ) {
        remove_meta_box( 'pageparentdiv', 'page', 'side' );
    }

}
add_action( 'admin_head', 'wpse343020_remove_meta_boxes' );