Why get_page_template() doesn’t show taxonomy template file name?

get_page_template returns the template of the current active post/page. You’re not on a post/page though, you’re in a listing/archive.

When you get page.php what you’re seeing is the template of the first post/page. The taxonomy listing itself is not a page, it’s a listing, and so it makes no sense for it to have a page template, as it is not a page.

See here for an answer that should do what you want:

Get name of the current template file

this may also work:

/* show me what the body class will look like */
echo body_class() . "\n";

/* make sure i've got $template */
global $template;

/* print the active template path and filename */
print_r($template);

( Although why check if you’re in template X inside template X, surely the answer will always be yes? )