Proxmox kernel not updating is almost always apt pinning or a missing meta-package. Run apt-cache policy pve-kernel-6.2 and look at the candidate version. If it shows (none), something is holding it back.

Check for apt pinning
Proxmox ships with a few pins by default, but a bad pin can block kernel upgrades. Look in /etc/apt/preferences.d/ and /etc/apt/preferences. A pin like this will do it:
Package: pve-kernel-*
Pin: version 5.15*
Pin-Priority: 1001
That forces the old kernel to stay. Remove the file or adjust the priority, then run apt update and try again.
Is the meta-package installed?
Proxmox uses meta-packages like pve-kernel-6.2 to pull in the latest kernel. If you installed a specific kernel like pve-kernel-6.2.16-3-pve, you won’t get updates. Check with dpkg -l | grep pve-kernel. Install the meta-package:
apt install pve-kernel-6.2
That pulls in the newest kernel and keeps you updated going forward.

Bootloader issues
Sometimes the kernel installs but the bootloader doesn’t pick it up. Run proxmox-boot-tool status to see if systemd-boot is in use. If it is, refresh it:
proxmox-boot-tool refresh
Then reboot and check uname -r. If it still shows the old kernel, look at /etc/kernel/proxmox-boot-uuids to make sure the right ESP is listed.
What I’d do
Start with apt-cache policy pve-kernel-6.2. If the candidate is (none), it’s pinning. If it’s there but apt upgrade won’t install it, check for held packages with apt-mark showhold. And if you’re on ZFS, make sure the pool is healthy before rebooting—a kernel update is a good time to check ZFS pool status.