When a user registers, create a page from an existing template with their username as the page name

First off, it sounds like you might be able to solve your underlying question using BuddyPress.

If you simply want to make an actual WordPress page if a user registers you can do that using the user_register hook. The hook receives the newly created user ID.

This code example should create a page with the user’s nicename.

add_action( 'user_register', 'myplugin_add_page_for_user' );

function myplugin_add_page_for_user( $user_id ) {

    // Get the user for this user_id
    $user = get_user_by( 'id', $user_id );

    // The data for the page we are going to add
    $page_data = array(
        'post_type'  => 'page',
        'post_title' => $user->user_nicename
    );

    // Actually insert the post
    wp_insert_post( $page_data );

}