Dashboard show only published pages instead of all pages

Try this solution. Works for me.

add_action( 'admin_menu', 'customize_pages_admin_menu_callback' );

function customize_pages_admin_menu_callback() {
    global $submenu;
    foreach ( $submenu['edit.php?post_type=page'] as $key => $value ) {
        if ( in_array( 'edit.php?post_type=page', $value ) ) {
            $submenu['edit.php?post_type=page'][ $key ][2] = 'edit.php?post_status=publish&post_type=page';
        }
    }
}

further, you can also hide All using CSS if needed.

<style>
    .post-type-page .subsubsub .all{ display:none}
</style>