Solaris uses NFSv4 ACLs while Linux uses POSIX ACLs. They are not directly compatible.
While Linux is (naturally) using gnu-tar, as you pointed out, I suspect that on Solaris you're using Solaris' native tar.
According to the Solaris tar(1) man page:
p
Restore the named files to their original modes, and
ACLs if applicable, ignoring the present umask(1). This
is the default behavior if invoked as super-user with
the x function letter specified. If super-user, SETUID,
and sticky information are also extracted, and files are
restored with their original owners and permissions,
rather than owned by root. When this function modifier
is used with the c function, ACLs are created in the
tarfile along with other information. Errors occur when
a tarfile with ACLs is extracted by previous versions of
tar.
You should use gnu-tar on Solaris if you're using the -p flag to preserve permissions and the tar will be extracted on a Linux system.
If you're using Solaris 11, install the gnu-tar package which will be located in /usr/gnu/bin/tar or /usr/gnu/bin/gtar. If you're using a release earlier than Solaris 11 you'll need to get gnu-tar from Sun FreeWare (which may be available on your Solaris Companion CD).