Let's explain why color different on the same cotton fabric ? The reason is simply Natural cotton fabric is not white. Ink color would be change after print on not white fabric even use bright ink because of the background color is not white
Let's make an example write letter on black paper with red ink ,but ink would be not red finally, could be dark red or other color.
Solution :Make a white coating on the fabric before print, then your logo will be vivid as your expect.