admin_notices show after load completed

Those are not admin notices. It’s not enough to echo text on the admin_notices hook, it needs to be wrapped in specific HTML.

Here is an example taken from the official WP doc for admin_notices:

function sample_admin_notice__success() {
    ?>
    <div class="notice notice-success is-dismissible">
        <p><?php _e( 'Done!', 'sample-text-domain' ); ?></p>
    </div>
    <?php
}
add_action( 'admin_notices', 'sample_admin_notice__success' );

If you need to add notices after the hook has fired, use the same HTML structure and WordPress will move it using javascript to the correct place