В том виде, в котором вы их привели, функции не отличаются.
Параметр справа уточняет тип T, в туториалах это называют ограничением типа.
static func max1<T:Comparable>(a: T, b: T) -> T {
return a < b ? b : a
}
static func max2<T:Comparable>(a: T, b: T) -> T where T : Equatable {
return a < b ? b : a
}