How to get featured image of last post in a category?

Correct this line in your code at the end of function.

echo get_the_post_thumbnail($page->ID, 'thumbnail');

should be

echo get_the_post_thumbnail($post_id, 'thumbnail');

also as per WordPress documentation, category_name parameter should be a string representing category slug, not name.

So, the complete code should look like this:

    $arg = array(
       'orderby'    => 'date',
       'number'     => 10,
    );
    $categories = get_categories($arg);
    echo '<ul>';

    foreach ($categories as $cat) {
         echo '<li>';
         echo '<figure>
                <a href="https://wordpress.stackexchange.com/questions/332566/?catId=".$cat->term_id.'">'; // not cat_ID
                   //Add featured image from the last post??
                    get_last_post_image($cat->slug);
        echo '</a>
             </figure>
         </li>';
      } 
    echo '</ul>';

And the function:

function get_last_post_image($cat_slug){
    $args = array(
        'category_name' => $cat_slug, // it should be slug of category, not name.
        'posts_per_page' => 1,
        'order_by' => 'date',
        'order' => 'desc'
    );
    $post = get_posts( $args );
    if($post) {
        $post_id = $post[0]->ID;
        if(has_post_thumbnail($post_id)){
            echo get_the_post_thumbnail($post_id, 'thumbnail');
        }
    }
}