Pregunta trampa?
Las diferencias son varias: la parte del procesador (el llamado 'core') es muy diferente entre los dos. La manera de acceder a la memoria (RAM, de programa, periféricos) es diferente. Los periféricos, su funcionalidad y los mapas de los registros son muy diferentes.
En el 'core', tenemos que los PIC (pequeños, que los de 16 bits ya no cuentan), son el clásico con un sólo registro acumulador (Working) y varios registros auxiliares. Mientras, en los AVR, el sistema usa 32 registros tipo acumulador que a la vez son registros auxiliares.
Los PIC tienen un juego de instrucciones más pequeño, de manera que aprender el ensamblador es más fácil que con los AVR que tienen muchos más (unos 120 a 131, según modelo).
El acceso a memoria de los PIC es más complejo debido a que tiene la RAM y los registros (por favor, los maestros del PIC que me corrijan si me equivoco) dividida en páginas. Eso hace que para acceder a un dato de la RAM quizás se deba seleccionar primero la página en la que este se halla.
En los AVR, esto no pasa, pero en cambio, las direcciones de la RAM y/o los registros son de 16 bits en lugar de 8.
Los PIC ejecutan la mayoría de instrucciones en 4 ciclos de reloj. Los AVR lo hacen en 1 ciclo de reloj (eso no es exactamente cierto, ya que en realidad los AVR tienen un Pipeline de dos estados: fetch y ejecución), de manera que con un reloj (cristal de cuarzo) igual en un PIC que en un AVR, el último va (en teoría, que esto no es la realidad) cuatro veces más rápido.
El hecho de tener varios acumuladores en los AVR significa que para hacer lo mismo, se necesita acceder menos veces a la memoria RAM, y por tanto, el programa en ensamblador es más corto, y encima se ejecuta más rápido, al no tener que ejecutar las instrucciones de acceso a memoria. Y aún más si no tiene que ir cambiando de página de memoria. Lo cual relativiza mucho el término 'velocidad'.
En cuanto a precio, probablemente haya algunas diferencias, sobre todo en la parte de los micros más 'pequeños', que sea favorable a los PIC.
Otra diferencia, es que el programa en ensamblador de un PIC 12f seguramente no sea para nada usable en un 16f. En un ATtiny las instrucciones son las mismas (quizás tenga algunas menos) que en uno grande (ATmega y ATXmega), así que el mismo programa seguramente se podrá ejecutar, si no hay particularidades de los periféricos (cosa muy habitual en todos los fabricantes, por cierto). La mayor diferencia de ensamblador y 'core' entre toda la gama AVR es la capacidad de direccionar más memoria (128KB implica pasar de registros de 16 bits a registros de 24), el multiplicador, y muy poco más, de ahí que las 110 instrucciones básicas sean las mismas en todos los micros, y el resto sea una ampliación.
Esto último desaparece si uno usa inglés, perdón, C
Respecto de los periféricos, bueno, cada fabricante tiene sus cosas, y encima las cambian de un modelo a otro, así que esto es demasiado específico como para generalizar. Quizás la excepción aquí sean los PSoC de Cypress, que es un animal muy diferente sobre todo en este aspecto.