A VPS is basically a virtual server running in a physical server. The Physical server is a machine designed to host multiple client websites/apps through the use of virtual private servers.
A VPS is created by a software. This software runs on a physical machine and creates virtual partitions. These partitions act as standalone servers, though in reality all of them reside in the same server.
Multiple software based partitions of the physical server allows the provider to sell these partitions as VPS accounts to multiple clients. Clients get root access to the partitions and can install any software they want including operating system of their choice.
In theory a VPS works similar to a dedicated server as you can do everything on a VPS that you can do on a dedicated server. But in practice, a VPS server will always lag in performance compared to a dedicated server. This happens due to sharing of resources.
Multiple VPS client account utilize same underlying limited physical resources. This increases workload and effects performance across all accounts. A dedicated physical server has only one client account on it, so the single account has no competition for resources.