Difference between is_page and is_page_template

is_page() returns true if the main query is for a single Page. If you provide an argument, which can be an ID, slug, or title, it will only return true if the main query is for the specific page with that ID, slug, or title.

is_page_template() returns true if you are viewing a page that has the given Page Template.

So is_page_template( 'template-about.php' ); will return true if you are viewing a page that is using the custom template template-about.php. While is_page( 'about' ) will only return true of you are viewing a page with the slug about.

Regarding when I say ‘the main query’, whenever you visit a URL in WordPress there will be a query for the content for that URL. So on http://example.com/about the main query will be for the page about, while on http://example.com/category/tutorials the main query will be for posts in the tutorials category. So is_page() is checking what the main thing being queried is.