The main difference between WWW and PUBLIC_HTML is that PUBLIC_HTML is the real webroot for your primary domain name. All the website files and resources that you want people to see on your domain are kept inside the PUBLIC_HTML folder.
On the other hand, www is acting more like a pointer to the PUBLIC_HTML folder. This means www is a link that takes you to PUBLIC_HTML. Although, all files that are stored in PUBLIC_HTML can also be seen www since it can also appear like a real folder. Both can also be confused to be the same because if you make a change in PUBLIC_HTML, it will also take effect at www.
The above reality is the reason why both are most times considered to be the same, but WWW is more like a pointer i.e., a link to the folder that contains the public files, whereas PUBLIC_HTML is the real folder.