Here are three reasons.
First, process IDs are OS-specific. Using process IDs would have made these protocols OS-dependent.
Second, a single process may establish multiple channels of communications. A single process ID (per process) as the destination identifier cannot be used to distinguish between these channels.
Third, having processes listen on well-known ports is easy, but well-known process IDs are impossible.