I want to share a web page on a local network using a hostname. Is it necessary to change the host file of each PC?
This depends on how your network is setup. If you have a central DNS server on your network (as many enterprise business networks have) then you can add a zone record for whatever domain you wish for it to show up as. If you don't currently have a central DNS server you could set one up to achieve what you are after just the same.
If both of those options are not available to you then you could use the standard network host name of the server you are using and it will allow you to show the web page through the default sit established (say 000-default for an apache server) by using the network name or IP address for the server in question.
If your desire is to have an actual domain name for the page, and you have no way to change the DNS zone file for the domain name in question then you would have to change the hosts file on every machine that will access the page in question but you need to be very careful with the hosts file as if you use an existing domain name then you will override DNS queries and prevent any access from the machines in question to the correct server for that hostname.