I was curious and spent an hour poking around. It looks like this is because company-quickhelp uses buffer-substring-no-properties instead of buffer-substring. In other words it deliberately discards the properties.
If I change that to use buffer-substring -- and also set (setq company-quickhelp-use-propertized-text t) -- then I do see the formatted text.
This actually prevents user from enabling propertized text.
I've submitted this issue https://github.com/greghendershott/racket-mode/issues/405 to racket-mode repo and @greghendershott pointed out this thing:
This actually prevents user from enabling propertized text.