Determine if, within a post, you are on page 2 or greater – WordPress documentation circular

The problem is that it also shows the featured image, in the same
spot, on pages 2, 3, 4, etc of the same article (when I have used
<!--nextpage-->). The featured image should only show on the first
page of any article.

In that case, then this might work for you:

function insert_feat_image( $content ) {
    global $page, $multipage;

    if ( $multipage && $page <= 1 ) {
        // it's the 1st page, so run your code here.
    } // else, it's not paginated or not the 1st page

    return $content;
}

Explanation about the global variables above:

  1. $multipage is a boolean flag indicating whether the page/post is paginated using the <!--nextpage--> tag (or the Page Break block in Gutenberg), and the flag would be a true, as long as the post contains the <!--nextpage--> tag and that the global post data has already been setup, e.g. the_post() or setup_postdata() has been called. (which is true when inside The Loop)

  2. The page number is stored in $page, but the number can also be retrieved using get_query_var( 'page' ). (yes, it’s page and not paged)

Alternate Solution

If you just wanted to know whether it’s the first page or not, regardless how the page/post was paginated (and only if it was paginated or in the case of archives, it means there are more than one page of results), you can try this instead which should work on any pages (single Post/Page/CPT, category archives, search results pages, etc.):

function insert_feat_image( $content ) {
    global $page, $multipage, $paged, $wp_query;

    $page_num = max( 1, $page, $paged );
    /* Or you can use:
    $page_num = max( 1, get_query_var( 'page' ), get_query_var( 'paged' ) );
    */

    if ( ( $multipage || $wp_query->max_num_pages > 1 ) && $page_num <= 1 ) {
        // it's the 1st page, so run your code here.
    } // else, it's not paginated or not the 1st page

    return $content;
}