Whats the difference between FreeBSD ports and Debian packages?
FreeBSD ports are more up to date. Debian packages are famously out of date - their claim to fame is stability not staying up to date. Arch is a better comparison here if you care about this you would be asking about Arch not Debian: that you are asking about Debian implies you want this out of date.
The other major difference is FreeBSD ports lets you chose the build options - the defaults are normally good, but if you don't like how Debian (Arch...) choose to build your packages you are not stuck. Ports even mixes with binary packages so you can choose the defaults for some things and build others yourself and the system will track everything and when things need to be updated. This is something you rarely need, but when you do FreeBSD soundly beats everyone else just because the effort is so much less (again though, most people never need this in the first place - and Debian has pushed less need of this on applications which is a good thing)
Ports is a meta build system, from which packages are created. Gives a lot of convenient power and flexibility. For ready built packages, the FreeBSD equivalent of dpkg or whatever five different package commands Debian is using now would be pkg.
FreeBSD is a complete OS, while debian is a distro, i.e the Linux kernel + a lot of programs including the utilities from GNU. So almost everything in debian comes from a package while in the BSD world, there's a split between the system utilities (called base) and the third-party projects (called ports). The port system itself is a collection of recipes to build those projects.
But the nicest thing about the software in the base is that they are developed in sync with the OS, so their code can be simpler.