once a developer from a company whose device i had bought, told me they couldn't support linux because every distribution had a different way to open a serial port and read data.
It is almost certainly handled by whatever library they are using to interface. And if they didn't pick one that is targeting linux, then that would be more work for them.
That is, this is likely easily solvable, but it is most easily solvable at the beginning of a project by choice of base libraries. I can understand not wanting to change things after the fact for a presumably small user base.
They claimed that they'd need a different implementation per distribution. Which makes no sense. It's just open()/ioctl_tty()/read()/write(), all of which are in the libc of every distribution that has ever existed since the 90s.
Fair, I'm putting charity to the claim and assuming that they coded against a Microsoft toolchain. That is, my assumption would not be that it was the different distros, but that is just an easy thing to say.