A "Unix like" system may be fully compliant with the Single UNIX Specification, the collective name of standards for what qualifies as a Unix system, but at the same time Unix is a registered trademark of The Open Group and vendors of Unix like systems need to get their systems registered to officially qualify as Unix. Currently the registered UNIX 03 systems are:
- Apple Inc.: Mac OS X Version 10.5 Leopard on Intel-based Macintosh computers
- Apple Inc.: Mac OS X Version 10.6 Snow Leopard on Intel-based Macintosh computers
- Fujitsu Limited: Solaris™10 Operating System on Fujitsu PRIMEPOWER® 64-bit SPARC® Based Platforms
- Hewlett-Packard Company: HP-UX 11i V3 Release B.11.31 or later on HP Integrity Servers
- IBM Corporation: AIX 5L for POWER V5.2 dated 8-2004 or later with APARs: IY59610, IY60869, IY61405 with VAC 126.96.36.199 or later on pSeries CHRP systems
- IBM Corporation: AIX 5L for POWER V5.3 dated 7-2006 or later on Systems using CHRP system architecture with POWER™processors
- IBM Corporation: AIX 6 Operating System V6.1.2 with SP1 or later on Systems using CHRP system architecture with POWER™ processors and 2, 8 or 128 port async cards
- Oracle Corporation: Oracle Solaris 11 FCS and later on SPARC-based platforms, 32-bit and 64-bit and on X86-based platforms, 32-bit and 64-bit
- Oracle Corporation: Solaris 10 Operating System plus patch 118844-06 for X86 and on, on 64-bit X86 based systems
- Oracle Corporation: Solaris 10 Operating System and on, on 32-bit and 64-bit SPARC based systems
- Oracle Corporation: Solaris 10 Operating System and on, on 32-bit X86 based systems
Vendors of open source Unix like systems (mostly Linux and FreeBSD) typically don't register with The Open Group, either to avoid the costs of certification or, well, because they don't find much value in doing so. In theory, it's entirely possible that a Unix like system is technically Unix, and all it's missing is certification.
The Linux Foundation on the other hand, created the Linux Standard Base, an ISO standard, in an effort to standardize Linux. Compliance with POSIX
is at the heart of both the SUS and the LSB, maintaining in a way the link between Unix and Linux.
Unix and Unix like systems tend to be more similar than different, in theory all popular Unix flavours, registered or not, are POSIX compliant (full or mostly), so they share a core programming interface, shells and utilities (and a lot of other stuff). IEEE and The Open Group maintain a freely available copy of the latest version, POSIX.1-2008, where you can find more information on what POSIX compliance actually means.
Now, apart from the legal and technical reasons, Linux inherited the "not Unix" mantra from it's association with GNU, a Unix like operating system initiated by Richard Stallman. GNU stands for "GNU's not Unix", as Stallman's intentions were to build a Unix compatible system that would be free, and in order to do that it should contain no Unix code, as Unix is proprietary.
Early Linux developers started porting GNU tools to Linux, and the resulting system was referred as GNU/Linux as early as 1992. There is a long lasting controversy on whether Linux should be referred to as Linux or GNU/Linux (as it incorporates several parts of GNU), but that's irrelevant to your question, what's relevant is that "not Unix" may just refer to the association with GNU and have little to do with it's design, depending on context.
The "History of Linux" article on Wikipedia explains the origins of Linux and it's relationship with Unix (via Minix and GNU) in some detail, and you should also take some time to read through the references of the article, if you are interested in learning more.